המילון של Snuke מכיל $n$ מילים שונות $s_1, \ldots, s_n$. כל מילה מורכבת מאותיות אנגליות קטנות. המילים ממוינות בסדר לקסיקוגרפי, כלומר $s_1 < \cdots < 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