#include <stdio.h> #include <stdlib.h> int m,n,meg=0,vx,vy,gert; char col,map[400][400]; int imap[400][400][2]; int index; void Init(); void fill(int x,int y, int ert,char color); void hid(int x,int y); int main() { int type,i,j; index=1; scanf("%d",&type); scanf("%d%d",&n,&m); Init(); char s[400]; gets(s); for(i=0;i<n;i++) gets(map[i]); if(type==1) { for(i=0;i<n;i++) for(j=0;j<m;j++) if(imap[i][j][0]==0) { gert=0; fill(i,j,1,map[i][j]); if(gert>meg)meg=gert; } printf("%d",meg); } else { for(i=0;i<n;i++) for(j=0;j<m;j++) if(imap[i][j][0]==0) { gert=0; fill(i,j,1,map[i][j]); index++; } for(i=0;i<n;i++) for(j=0;j<m;j++) hid(i,j); printf("%d %d\n%c",vx+1,vy+1,col); } return 0; } void Init() { int i,j; for(i=0;i<n;i++) for(j=0;j<m;j++) { imap[i][j][0]=0; imap[i][j][0]=0; } } void fill(int x,int y,int ert,char color) { imap[x][y][1]=index; imap[x][y][0]=ert; gert++; if(x>0)if((map[x-1][y]==color)&&(imap[x-1][y][0]==0))fill(x-1,y,ert+1,color); if(x<n-1)if((map[x+1][y]==color)&&(imap[x+1][y][0]==0))fill(x+1,y,ert+1,color); if(y>0)if((map[x][y-1]==color)&&(imap[x][y-1][0]==0))fill(x,y-1,ert+1,color); if(y<m-1)if((map[x][y+1]==color)&&(imap[x][y+1][0]==0))fill(x,y+1,ert+1,color); imap[x][y][0]=gert; } void hid(int x,int y) //a hidat meg kell keresni es aztan elinditani a fill-t { int ert; char ind[4]={'0','0','0','0'}; if(x>0)if(map[x-1][y]!=map[x][y]) { ind[0]='1'; ert=imap[x-1][y][0]+1; if(x<n-1)if((map[x-1][y]==map[x+1][y])&&(imap[x-1][y][1]!=imap[x+1][y][1])) {ert=ert+imap[x+1][y][0]; ind[1]='1';} if(y>0)if((map[x-1][y]==map[x][y-1])&&(imap[x-1][y][1]!=imap[x][y-1][1])) {ert=ert+imap[x][y-1][0];ind[2]='1';} if(y<m-1)if((map[x-1][y]==map[x][y+1])&&(imap[x-1][y][1]!=imap[x][y+1][1])) {ert=ert+imap[x][y+1][0];ind[3]='1';} } if(ert>meg) { vx=x; vy=y; meg=ert; col=map[x-1][y]; } if(x<n-1)if(ind[1]=='0')if(map[x+1][y]!=map[x][y]) { ind[1]='1'; ert=imap[x+1][y][0]+1; if(y>0)if((map[x+1][y]==map[x][y-1])&&(imap[x+1][y][1]!=imap[x][y-1][1])) {ert=ert+imap[x][y-1][0];ind[2]='1';} if(y<m-1)if((map[x+1][y]==map[x][y+1])&&(imap[x+1][y][1]!=imap[x][y+1][1])) {ert=ert+imap[x][y+1][0];ind[3]='1';} } if(ert>meg) { vx=x; vy=y; meg=ert; col=map[x+1][y]; } if(y>0)if(ind[2]=='0')if(map[x][y-1]!=map[x][y]) { ind[2]='1'; ert=imap[x][y-1][0]+1; if(y<m-1)if((map[x][y-1]==map[x][y+1])&&(imap[x][y-1][1]!=imap[x][y+1][1])) {ert=ert+imap[x][y+1][0];ind[3]='1';} } if(ert>meg) { vx=x; vy=y; meg=ert; col=map[x][y-1]; } if(y<m-1)if(ind[3]=='0')if(map[x][y+1]!=map[x][y]) ert=imap[x][y+1][0]+1; if(ert>meg) { vx=x; vy=y; meg=ert; col=map[x][y+1]; } }