#include<cstdio> int p,n,m,i,j,ii,jj,a,vmax,vvmax,imax,jmax,nr,nrr,nnr,ok,okk,vv[1000],y[1000],v[100000],x[1000][1000],c[2][100100]; int di[4]={1,0,-1,0}; int dj[4]={0,1,0,-1}; char s[1000][1000],ss[1000],cc,cmax; FILE *f,*g; int maxim(int a,int b){ if(a>b) return a; return b; } void fil(int a,int b){ x[a][b]=nr; c[0][1]=a; c[1][1]=b; int p,u; p=u=1; v[nr]=1; while(p<=u){ int ic=c[0][p]; int jc=c[1][p]; for(int d=0;d<=3;d++){ int iv=ic+di[d]; int jv=jc+dj[d]; if(x[iv][jv]==0&&1<=iv&&iv<=n&&0<=jv&&jv<m&&s[iv][jv]==s[ic][jc]){ x[iv][jv]=nr; c[0][++u]=iv; c[1][u]=jv; v[nr]++; } } p++; } } int main(){ f=fopen("1.in","r"); g=fopen("1.out","w"); fscanf(f,"%d%d%d",&p,&n,&m); for(i=1;i<=n;i++){ fscanf(f,"%s",s[i]); } for(i=1;i<=n;i++){ for(j=0;j<m;j++){ if(x[i][j]==0){ nr++; fil(i,j); vmax=maxim(vmax,v[nr]); } } } if(p==1){ fprintf(g,"%d",vmax); } else{ vvmax=vmax+1; for(i=1;i<=n;i++){ for(j=0;j<n;j++){ a=v[ x[i][j] ]; nrr=1; vv[nrr]=x[i][j]; ss[nrr]=s[i][j]; for(int d=0;d<=3;d++){ int iv=i+di[d]; int jv=j+dj[d]; if(1<=iv&&iv<=n&&0<=jv&&jv<m){ ok=okk=0; for(ii=1;ii<=nrr;ii++){ if(x[iv][jv]==vv[ii]){ ok=1; } if(s[iv][jv]==ss[ii]){ okk=1; } } if(ok==0){ ok=-1; vv[++nrr]=x[iv][jv]; } else ok=0; if(okk==0){ ss[nrr]=s[iv][jv]; } } } for(ii=1;ii<=nrr;ii++){ cc=ss[i]; a=v[ vv[i] ]; nnr=1; y[nnr]=vv[i]; for(int d=0;d<=3;d++){ int iv=i+di[d]; int jv=j+dj[d]; if(1<=iv&&iv<=n&&0<=jv&&jv<m&&s[iv][jv]==cc){ ok=1; for(jj=1;jj<=nnr;jj++){ if(y[jj]==x[iv][jv]){ ok=0; break; } } if(ok==1){ a+=v[ x[iv][jv] ]; y[++nnr]=x[iv][jv]; } } } if(a+1>vvmax){ vvmax=a; imax=i; jmax=j; cmax=cc; } } } } fprintf(g,"%d %d\n%c",imax,jmax+1,cmax); } fclose(f); fclose(g); return 0; }