
You are given an array of words where each word consists of lowercase English letters.
word _A is a predecessor of word _B if and only if we can insert exactly one letter anywhere in word _A without changing the order of the other characters to make it equal to word _B .
For example, "abc" is a predecessor of "ab a c" , while "cba" is not a predecessor of "bcad" .
A word chain is a sequence of words [word _1 , word _2 , ..., word _k ] with k >= 1 , where word _1 is a predecessor of word _2 , word _2 is a predecessor of word _3 , and so on. A single word is trivially a word chain with k == 1 .
Return the length of the longest possible word chain with words chosen from the given list of words .
1 <= words.length <= 10001 <= words[i].length <= 16words[i] only consists of lowercase English letters.