#4. 子矩形

子矩形

题目描述

现在有一个 n×mn\times m 的网格, 网格的每一个位置有一个颜色。

现在你需要统计有多少个子矩形,满足:

  1. 这个子矩形由自上而下三条横向的颜色带组成
  2. 每一条颜色带宽度相等
  3. 相邻两个颜色带颜色不能相同。

image

如上是合法的矩形。

image

如上是不合法的矩形。

输入格式

第一行两个整数 n,mn,m,表示矩形长宽。

接下来 nn 行,每行一串长 mm 的小写字母字符串,表示矩形第 ii 行从左到右的颜色。

输出格式

一行一个整数,表示合法子矩形个数。

样例 #1

样例输入 #1

4 3
aaa
bbb
ccb
ddd

样例输出 #1

6

提示

对于样例 1,有如下图解:

image

对于 10%10\% 数据,有 n,m20n,m\le 20.

对于 20%20\% 数据,有 n,m40n,m\le 40.

对于 30%30\% 数据,有 n,m100n,m\le 100.

对于 50%50\% 数据,有 n,m500n,m\le 500.

对于 70%70\% 数据,有 n,m1500n,m\le 1500.

对于 100%100\% 数据,有 1n,m60001\le n,m\le 6000,保证仅使用不同的小写字母表示不同的颜色。