#include using namespace std; char tab[1007][1007]; long long lg[1007][1007]; long long pg[1007][1007]; long long ld[1007][1007]; long long pd[1007][1007]; long long wy=0; int main() { int n,m; ios_base::sync_with_stdio(0); cin>>n>>m; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { cin>>tab[i][j]; } } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(tab[i][j]==tab[i-1][j] and tab[i][j]==tab[i][j-1]) { pd[i][j]=min(pd[i-1][j],pd[i][j-1])+1; } wy+=pd[i][j]; } } for(int i=1;i<=n;i++) { for(int j=m;j>0;j--) { if(tab[i][j]==tab[i-1][j] and tab[i][j]==tab[i][j+1]) { ld[i][j]=min(ld[i-1][j],ld[i][j+1])+1; } wy+=ld[i][j]; } } for(int i=n;i>0;i--) { for(int j=1;j<=m;j++) { if(tab[i][j]==tab[i+1][j] and tab[i][j]==tab[i][j-1]) { pg[i][j]=min(pg[i+1][j],pg[i][j-1])+1; } wy+=pg[i][j]; } } for(int i=n;i>0;i--) { for(int j=m;j>0;j--) { if(tab[i][j]==tab[i+1][j] and tab[i][j]==tab[i][j+1]) { lg[i][j]=min(lg[i+1][j],lg[i][j+1])+1; } wy+=lg[i][j]; } } cout<