You are given an array of `words`. Word `A` is a **predecessor** of word `B` if inserting exactly one letter into `A` (without reordering) yields `B`. A word chain is a sequence where each word is a predecessor of the next.
Return the length of the longest possible word chain.
Example 1
Input:words = ["a","b","ba","bca","bda","bdca"]
Output:4
Explanation:"a" -> "ba" -> "bda" -> "bdca".
Constraints
- 1 <= words.length <= 1000
- 1 <= words[i].length <= 16
- words[i] consists of lowercase English letters