#include using namespace std; const int NMAX = 400 + 1; int n, m, zona; int tip; int dx[] = { 0, 1, 0, -1}; int dy[] = {-1, 0, 1, 0}; int nr[NMAX * NMAX]; bool c[NMAX * NMAX]; char v[NMAX][NMAX]; int b[NMAX][NMAX]; void citeste() { cin >> tip; cin >> n >> m; for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) cin >> v[i][j]; } void fill(int x, int y) { b[x][y] = zona; nr[zona]++; for (int i = 0; i < 4; i++) { if (!b[x + dx[i]][y + dy[i]] && v[x][y] == v[x + dx[i]][y + dy[i]]) fill(x + dx[i], y + dy[i]); } } void rezolva() { int maxim = -1; char x; int sol = -1, soli, solj,l = 0, s = 0; for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) if (!b[i][j]) { zona++; fill(i, j); maxim = max(maxim, nr[zona]); } for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) { char a = v[i][j]; for (int k = 0; k < 4; k++) { v[i][j] = v[i + dx[k]][j + dy[k]]; for (l = 0, s = 0; l < 4; l++) { if (!c[b[i + dx[l]][j + dy[l]]] && v[i][j] == v[i + dx[l]][j + dy[l]]) { c[b[i + dx[l]][j + dy[l]]] = 1; s += nr[b[i + dx[l]][j + dy[l]]]; } } if(c[b[i][j]] == 0) s++; if(s > sol) { sol = s; x = v[i][j]; soli = i; solj = j; } for(l = 0; l < 4; l++) { c[b[i + dx[l]][j + dy[l]]] = 0; } } v[i][j] = a; } if (tip == 1) cout << maxim; else cout << soli << ' ' << solj; cout << '\n'; } int main() { citeste(); rezolva(); return 0; }