#codefestival2016qualCd. [codefestival_2016_qualC_d]Friction

[codefestival_2016_qualC_d]Friction

Problem Statement

Mr. Takahashi has in his room an art object with HH rows and WW columns, made up of HtimesWH \\times W blocks. Each block has a color represented by a lowercase English letter (a-z). The color of the block at the ii-th row and jj-th column is ci,jc_{i,j}.

Mr. Takahashi would like to dismantle the object, finding it a bit kitschy for his tastes. The dismantling is processed by repeating the following operation:

  • Choose one of the WW columns and push down that column one row. The block at the bottom of that column disappears.

Each time the operation is performed, a cost is incurred. Since blocks of the same color have a property to draw each other together, the cost of the operation is the number of the pairs of blocks (p,q)(p, q) such that:

  • The block pp is in the selected column.
  • The two blocks pp and qq are horizontally adjacent (before pushing down the column).
  • The two blocks pp and qq have the same color.

Mr. Takahashi dismantles the object by repeating the operation HtimesWH \\times W times to get rid of all the blocks. Compute the minimum total cost to dismantle the object.

Constraints

  • 1H3001 ≤ H ≤ 300
  • 2W3002 ≤ W ≤ 300
  • All characters ci,jc_{i,j} are lowercase English letters (a-z).

Partial Score

  • In test cases worth 300300 points, W=3W = 3.

Input

The input is given from Standard Input in the following format:

HH WW c1,1c1,2c_{1,1}c_{1,2}..c1,Wc_{1,W} c2,1c2,2c_{2,1}c_{2,2}..c2,Wc_{2,W} :: cH,1cH,2c_{H,1}c_{H,2}..cH,Wc_{H,W}

Output

Print the minimum total cost to dismantle the object.


Sample Input 1

2 3
rrr
brg

Sample Output 1

2

For example, the total cost of 22 can be achieved by performing the operation as follows and this is the minimum value.

ccb25ed6f1df9367829b68523e1deff4.png


Sample Input 2

6 3
xya
xya
ayz
ayz
xaz
xaz

Sample Output 2

0

The total cost of 00 can be achieved by first pushing down all blocks of the middle column, then all of the left column, and all of the right column.


Sample Input 3

4 2
ay
xa
xy
ay

Sample Output 3

0

The total cost of 00 can be achieved by the following operations:

  • pushing down the right column one row;
  • pushing down the left column one row;
  • pushing down all of the right column;
  • and pushing down all of the left column.

Sample Input 4

5 5
aaaaa
abbba
ababa
abbba
aaaaa

Sample Output 4

24

Sample Input 5

7 10
xxxxxxxxxx
ccccxxffff
cxxcxxfxxx
cxxxxxffff
cxxcxxfxxx
ccccxxfxxx
xxxxxxxxxx

Sample Output 5

130