题目描述
10月11日是MM的生日,Matrix67打算自己DIY一些抱枕送给MM。Matrix67手中有一块矩形花布,花布分成了M x N个小格子,有些格子的花色相同,有些格子的花色不同。为了使最终成品更美观,Matrix67希望用于DIY的布匹都是正方形的,并且满足布匹花色上下对称且左右对称。为此,他希望能计算出这块花布里一共包含有多少个上下对称且左右对称的小正方形。
举例来说,Matrix67手中的花布大小为6 x 4,上面共有5种花色:
ABACDA
DCDEAA
ABABAA
DDCBBA
则这块布里一共有26个上下对称且左右对称的正方形,其中包括最左上角的3x3正方形、右边4个A组成的2x2正方形,当然还有24个1x1的小正方形。
输入格式
第一行输入两个用空格隔开的正整数M,N,表示Matrix67手中的格子布分为M行N列。
以下M行每行N个字符,描述布匹的花色。我们用26个大写字母来区别不同的花色,相同的字母代表相同的花色,不同的字母代表不同的花色。
数据规模:
对于30%的数据,M,N<=10;
对于100%的数据,M,N<=200。
输出格式
输出在Matrix67的格子布中切出一块花色左右对称且上下对称的正方形共有多少种方案。
样例输入
样例输出