#include using namespace std; long long N, M, o; char t[1000][1000]; char p[1000][1000]; long long a[1000][1000]; long long b[1000][1000]; long long d[1000][1000]; void be(){ for(int i=0; i=0; i--){ for(int j=M-2; j>=0; j--){ if(t[i][j]==t[i+1][j]) a[i][j] = a[i+1][j]+1; if(t[i][j]==t[i][j+1]) b[i][j] = b[i][j+1]+1; if(a[i][j]>1 && b[i][j]>1) d[i][j] = 1; if(t[i][j]==t[i+1][j+1]){ d[i][j] = max(d[i][j],min(d[i+1][j+1]+2,min(a[i][j]-1,b[i][j]-1))); } o += d[i][j]; } } } int main(){ ios_base::sync_with_stdio(false); cin >> N >> M; for(int i=0; i> t[i][j]; } } for(int ii=0; ii<4; ii++){ be(); for(int i=0; i