A generalized abbreviation of a word replaces any number of non-overlapping, non-adjacent (in terms of being merged) substrings with their lengths. Each character independently is either kept or part of an abbreviated run, giving 2^n possible abbreviations for a word of length n. Given a word, return the number of generalized abbreviations, modulo 10^9+7.
Input: A quoted word string.
Output: Integer — count mod 10^9+7.
Input: "word"
Output: 16
Explanation: 2^4 = 16 abbreviations.Input: "a"
Output: 2
Explanation: 'a' or '1'.Input: "abc"
Output: 8
Explanation: 2^3 = 8.1<=word.length<=10^5lowercase letters