Le dictionnaire de Snuke contient $n$ mots distincts $s_1, \ldots, s_n$. Chaque mot est composé de lettres minuscules de l’alphabet anglais. Les mots sont triés dans l’ordre lexicographique, c’est-à-dire que $s_1 < \cdots < s_n$. Malheureusement, vous ne pouvez pas lire certains caractères de son dictionnaire. Vous avez remplacé ces caractères par « ? ». Calculez le nombre de façons de remplacer chaque « ? » par une lettre minuscule de l’alphabet anglais afin d’obtenir un dictionnaire valide, modulo $1\,000\,000\,007$.
Entrée
La première ligne de l’entrée contient un entier $n$ ($1 \le n \le 50$). Viennent ensuite $n$ lignes ; la $i$-ème contient le mot $s_i$ ($1 \le |s_i| \le 20$, chaque caractère de $s_i$ est une lettre minuscule de l’alphabet anglais ou un « ? »).
Sortie
Affichez la réponse.
Exemples
Entrée 1
2 ?sum??mer c??a??mp
Sortie 1
703286064
Entrée 2
3 snuje ????e snule
Sortie 2
1