#agc023b. [agc023_b]Find Symmetries
[agc023_b]Find Symmetries
题目描述
Snuke有两个棋盘,每个棋盘都被划分为一个 行 列的网格。对于这两个棋盘,从上到下数第 行、从左到右数第 列的方格被称为方格 。
第一个棋盘上的每个方格中都有一个小写英文字母。方格 中的字母为 。第二个棋盘上还没有写任何东西。
Snuke将在第二个棋盘上写字,方法如下:
- 首先,选择两个整数 和 ( )。
- 在第二个棋盘的每个方格中写入一个字母。具体而言,将第一个棋盘上方格 中的字母写入第二个棋盘上方格 中。在这里,第 行也可以表示为第 行,第 列也可以表示为第 列。
进行完这个操作后,第二个棋盘被称为_好棋盘_,当且仅当对于每个 和 ( ),方格 中的字母和方格 中的字母相等。
找出选择整数 和 ( )使得第二个棋盘成为好棋盘的方法数。
约束条件
- ( )是一个小写英文字母。
输入
输入以以下格式从标准输入给出:
输出
打印选择整数 和 ( )使得第二个棋盘成为好棋盘的方法数。
样例输入 1
2
ab
ca
样例输出 1
2
对于每对 和 ,第二个棋盘如下所示:
当 或 时,第二个棋盘是一个好棋盘,因此答案是 。
样例输入 2
4
aaaa
aaaa
aaaa
aaaa
样例输出 2
16
每个可能的 和 的选择都会使第二个棋盘成为好棋盘。
样例输入 3
5
abcde
fghij
klmno
pqrst
uvwxy
样例输出 3
0
没有任何可能的 和 的选择会使第二个棋盘成为好棋盘。