#include <iostream> #include <algorithm> #define lmax 405 using namespace std; char cul; int tip,n,m,l,c,nrz,maxim,zona_c; int ap[lmax]; struct el { char car; int zona,nr; }v[5],a[lmax][lmax]; inline bool comp1(el e1,el e2) { if (e1.zona!=e2.zona) return e1.zona<e2.zona; e1.nr>e1.nr; } inline bool comp2(el e1,el e2) { return e1.car<e2.car; } inline void fill(int l,int c) { a[l][c].zona=zona_c; ap[zona_c]++; if (a[l+1][c].car==a[l][c].car && a[l+1][c].zona==0) fill(l+1,c); if (a[l-1][c].car==a[l][c].car && a[l-1][c].zona==0) fill(l-1,c); if (a[l][c+1].car==a[l][c].car && a[l][c+1].zona==0) fill(l,c+1); if (a[l][c-1].car==a[l][c].car && a[l][c-1].zona==0) fill(l,c-1); } int main() { cin>>tip>>n>>m; for (int i=1;i<=n;i++) for (int j=1;j<=m;j++) cin>>a[i][j].car; for (int i=1;i<=n;i++) for (int j=1;j<=m;j++) if (a[i][j].zona==0) { zona_c++; fill(i,j); } if (tip==1) cout<<zona_c; else { for (int i=1;i<=n;i++) for (int j=1;j<=m;j++) a[i][j].nr=ap[a[i][j].zona]; for (int i=1;i<=n;i++) for (int j=1;j<=m;j++) { v[1]=a[i-1][j]; v[2]=a[i+1][j]; v[3]=a[i][j-1]; v[4]=a[i][j+1]; sort(v+1,v+5,comp1); for (int k=2;k<=4;k++) if (v[k].zona==v[k-1].zona) v[k].nr=0; sort(v+1,v+5,comp2); int ma=0; for (int k=1;k<=4;k++) if (v[k].car==v[k-1].car) nrz+=v[k].nr; else { if (nrz>ma) ma=nrz; nrz=v[k].nr; } if (ma>maxim) { maxim=ma; l=i; c=j; cul=a[i][j].car; } } cout<<l<<" "<<c<<'\n'<<cul; } return 0; }