#include int type; int m, n; char crops[500][500]; char field[500][500]; int zone_size[50]; int zones = 1; int max_zone = 0; int di[5] = {-1, 0, 1, 0}, dj[5] = {0, 1, 0, -1}; int vi, vj; void mark_zone(int i, int j, char c) { crops[i][j] = crops[i][j] - 'a' + 'A'; zone_size[zones]++; field[i][j] = zones; for (int k=0; k<4; ++k) { vi = i + di[k]; vj = j + dj[k]; if (crops[vi][vj] == c) mark_zone(vi, vj, c); } } void largest() { for (int i=1; i= 'a') { mark_zone(i,j, crops[i][j]); if (zone_size[zones] > max_zone) max_zone = zone_size[zones]; zones++; } } int new_size(int i, int j) { int s1 = 1; int s2 = 1; if (crops[i][j-1] == crops[i][j+1]) s1 += zone_size[field[i][j-1]] + zone_size[field[i][j+1]]; if (crops[i-1][j] == crops[i+1][j]) s1 += zone_size[field[i-1][j]] + zone_size[field[i+1][j]]; return 0; } void enlarge() { largest(); int s; for (int i=0; i max_zone) max_zone = s; } } int main () { scanf("%d\n", &type); scanf("%d %d", &m, &n); for (int i=1; i<=m; ++i) { scanf("\n"); for (int j=1; j<=n; ++j) scanf("%c", &crops[i][j]); } if (type == 1) { largest(); printf("%d", max_zone); } else enlarge(); return 0; }