Słownik Snuke zawiera $n$ różnych słów $s_1, \ldots, s_n$. Każde słowo składa się z małych liter alfabetu angielskiego. Słowa są uporządkowane leksykograficznie, czyli $s_1 < \cdots < s_n$. Niestety nie możesz odczytać niektórych znaków w jego słowniku. Zastąpiłeś je znakami „?”. Oblicz liczbę sposobów zastąpienia każdego „?” małą literą alfabetu angielskiego tak, aby powstał poprawny słownik, modulo $1\,000\,000\,007$.
Wejście
Pierwszy wiersz wejścia zawiera jedną liczbę całkowitą $n$ ($1 \le n \le 50$). Następnie występuje $n$ wierszy, z których $i$-ty zawiera słowo $s_i$ ($1 \le |s_i| \le 20$, każdy znak w $s_i$ jest małą literą alfabetu angielskiego lub znakiem „?”).
Wyjście
Wypisz odpowiedź.
Przykład
Wejście 1
2 ?sum??mer c??a??mp
Wyjście 1
703286064
Wejście 2
3 snuje ????e snule
Wyjście 2
1