Snuke 的字典包含 $n$ 个不同的单词 $s_1, \dots, s_n$。每个单词由小写英文字母组成。这些单词按字典序排列,即 $s_1 < \dots < s_n$。不幸的是,你无法辨认字典中的某些字符。你将这些字符替换为了 '?'。请计算将每个 '?' 替换为一个小写英文字母,使得字典仍然合法(即满足字典序排列)的方案数,结果对 $1,000,000,007$ 取模。
输入格式
第一行包含一个整数 $n$ ($1 \le n \le 50$)。接下来 $n$ 行,第 $i$ 行包含单词 $s_i$ ($1 \le |s_i| \le 20$,且 $s_i$ 中的每个字符均为小写英文字母或 '?')。
输出格式
输出答案。
样例
样例输入 1
2 ?sum??mer c??a??mp
样例输出 1
703286064
样例输入 2
3 snuje ????e snule
样例输出 2
1