300797: CF152C. Pocket Book

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Pocket Book

题意翻译

给出 n 个长度为 m 的字符串,定义一次操作(i , j , k)表示可以按任意选取1 <= i < j <= n ,1 <= k <= m ,使得编号为 i , j的两个字符串的长度为 k 的前缀互换;问任意多次操作后能得到的不同字符串的最大数量。 你可以将这 n 个字符串看为一个集合,然后将每一次操作后新产生的字符串加入到这个集合中,众所周知集合是满足互异性的,即集合内的字符串不能有相同。答案相当于经过任意多次操作后,集合所包含的最多的元素个数是多少

题目描述

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&lt;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) $ .

输入输出格式

输入格式


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.

输出格式


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) $ .

输入输出样例

输入样例 #1

2 3
AAB
BAA

输出样例 #1

4

输入样例 #2

4 5
ABABA
BCGDG
AAAAA
YABSA

输出样例 #2

216

说明

In the first sample Vasya can get the following names in the position number $ 1 $ : "AAB", "AAA", "BAA" and "BAB".

Input

题意翻译

给出 n 个长度为 m 的字符串,定义一次操作(i , j , k)表示可以按任意选取1 <= i < j <= n ,1 <= k <= m ,使得编号为 i , j的两个字符串的长度为 k 的前缀互换;问任意多次操作后能得到的不同字符串的最大数量。 你可以将这 n 个字符串看为一个集合,然后将每一次操作后新产生的字符串加入到这个集合中,众所周知集合是满足互异性的,即集合内的字符串不能有相同。答案相当于经过任意多次操作后,集合所包含的最多的元素个数是多少

加入题单

算法标签: