#include using namespace std; const int N = 1111; int n, m; char A[N][N]; char B[N][N]; int h[N][N]; int main() { scanf("%d%d", &n, &m); for(int i = 0; i < n; i++) { scanf("%s", A[i]); } int ans = 0; for(int it = 0; it < 4; it++) { int prev = 0; for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) { if(i > 0 && A[i-1][j] == A[i][j]) { h[i][j] = h[i-1][j]; } else { h[i][j] = i; } int d = i - h[i][j] + 1; if(j > 0 && A[i][j] == A[i][j-1]) { d = min(d, prev + 1); } else { d = 1; } ans += d - 1; prev = d; } } // for(int i = 0; i < n; i++) printf("%s\n", A[i]); memset(B, 0, sizeof B); for(int i = 0; i < m; i++) { for(int j = 0; j < n; j++) { B[i][j] = A[j][m-i-1]; } } swap(n, m); memcpy(A, B, sizeof B); } printf("%d\n", ans); }