C. Флаг
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Иннокентий работает на блошином рынке, продавая посетителям всякий хлам необычные вещи. Недавно он нашёл у себя на складе старое прямоугольное покрывало. Как оказалось, это покрывало имеет сетчатую форму, то есть покрывало состоит из $$$n \cdot m$$$ цветных лоскутков, разбитых на $$$n$$$ строк и $$$m$$$ столбцов.

Цветные лоскутки привлекли внимание Иннокентия, и он сразу же придумал, как можно заработать на своей находке. Если вырезать из покрывала подпрямоугольник, состоящий из трёх цветных полос, то потом этот подпрямоугольник можно будет продать как флаг какой-нибудь страны. В частности, Иннокентий считает, что подпрямоугольник будет достаточно похож на флаг какой-нибудь страны, если он будет состоять из трёх одноцветных полос одинаковой высоты, находящихся друг под другом. Разумеется, цвет верхней полосы не должен совпадать с цветом средней полосы, а цвет средней не должен совпадать с цветом нижней.

Иннокентий пока не знает из какой части покрывала будет вырезать флаг, однако он точно решил, что будет вырезать флаг только по линиям сетки, при этом покрывало ни в коем случае нельзя поворачивать. Помогите Иннокентию и посчитайте количество различных подпрямоугольников, которые можно вырезать из покрывала и продать как флаг. Подпрямоугольники, образующие одинаковые флаги, однако расположенные в разных местах покрывала, считаются различными.

  

Примеры подпрямоугольников, являющихся флагами

     

Примеры подпрямоугольников, не являющихся флагами

Входные данные

Первая строка содержит два целых числа $$$n$$$ и $$$m$$$ ($$$1 \le n, m \le 1\,000$$$) — количество строк и столбцов в покрывале.

Каждая из следующих $$$n$$$ строк описывает очередную строку покрывала и состоит из $$$m$$$ строчных латинских букв от «a» до «z», где одинаковым цветам соответствуют одинаковые буквы, а разным цветам — разные буквы.

Выходные данные

В единственной строке выведите одно целое число — количество подпрямоугольников, являющихся флагами.

Примеры
Входные данные
4 3
aaa
bbb
ccb
ddd
Выходные данные
6
Входные данные
6 1
a
a
b
b
c
c
Выходные данные
1
Примечание
 

Пояснение к примеру. Выделены подпрямоугольники, являющиеся флагами