One day little Vasya found mom's pocket book. The book had $*n*$ names of her friends and unusually enough, each name was exactly $*m*$ letters long. Let's number the names from $1$ to $*n*$ in the order in which they are written.
As mom wasn't home, Vasya decided to play with names: he chose three integers $*i*$, $*j*$, $*k*$ ($1 ≤ *i* < *j* ≤ *n*$, $1 ≤ *k* ≤ *m*$), then he took names number $*i*$ and $*j*$ and swapped their prefixes of length $*k*$. For example, if we take names "CBDAD" and "AABRD" and swap their prefixes with the length of $3$, the result will be names "AABAD" and "CBDRD".
You wonder how many different names Vasya can write instead of name number $1$, if Vasya is allowed to perform any number of the described actions. As Vasya performs each action, he chooses numbers $*i*$, $*j*$, $*k*$ independently from the previous moves and his choice is based entirely on his will. The sought number can be very large, so you should only find it modulo $1000000007$ $(10^{9} + 7)$.
Input
The first input line contains two integers $*n*$ and $*m*$ ($1 ≤ *n*, *m* ≤ 100$) — the number of names and the length of each name, correspondingly. Then $*n*$ lines contain names, each name consists of exactly $*m*$ uppercase Latin letters.
Output
Print the single number — the number of different names that could end up in position number $1$ in the pocket book after the applying the procedures described above. Print the number modulo $1000000007$ $(10^{9} + 7)$.
Note
In the first sample Vasya can get the following names in the position number $1$: "AAB", "AAA", "BAA" and "BAB".
样例
2 3
AAB
BAA
4
4 5
ABABA
BCGDG
AAAAA
YABSA
216
题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。