#include #include #include using namespace std; typedef long long ll; const int maxn = 5000; vector graph[maxn]; int main() { int n, m; cin >> n >> m; char c[n][m]; int mat[n][m]; int idx = 0; for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) { cin >> c[i][j]; mat[i][j] = idx; idx++; } } int di[] = {-1, 1, 0, 0}; int dj[] = {0, 0, -1, 1}; for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) { for(int k = 0; k < 4; k++) { int ti = i + di[k]; int tj = j + dj[k]; if(ti >= 0 and ti < n and tj >= 0 and tj < m and c[i][j] == c[ti][tj]) { graph[mat[i][j]].push_back(mat[ti][tj]); graph[mat[ti][tj]].push_back(mat[i][j]); } } } } return 0; }