/* Look at me! Look at me! Look at how large the monster inside me has become! */ #include<fstream> #include<iostream> #include<cstdio> #include<map> #include<set> #define FIT(a,b) for(vector<int >::iterator a=b.begin();a!=b.end();a++) #define FITP(a,b) for(vector<pair<int,int> >::iterator a=b.begin();a!=b.end();a++) #define RIT(a,b) for(vector<int>::reverse_iterator a=b.end();a!=b.begin();++a) #include<stack> #define ROF(a,b,c) for(int a=b;a>=c;--a) #include<vector> #include<algorithm> #define FOR(a,b,c) for(int a=b;a<=c;++a) #define REP(a,b) for(register int a=0;a<b;++a) #include<cstring> #include<ctime> #include<bitset> #include<cmath> #include<iomanip> #include<set> #define f cin #define g cout #include<queue> #define debug cerr<<"OK"; #define pii pair<int,int> #define mp make_pair #define pb push_back #define fi first #define se second #define ll long long #define ull unsigned long long #define M 1000000007 #define mod 666013 #define N 1010 #define SQR 350 #define inf 1<<30 #define div pula using namespace std; int dx[]={0,0,0,1,-1}; int dy[]={0,1,-1,0,0}; char s[N][N],col; stack<int> sx,sy; queue<int> qx,qy; int t,vi[N*N],viz[N][N],tip,stx[N],xs,ys,car,sty[N],cmax,n,m,dim[N][N],cs,k; void bfs(int x,int y) { cs=1; sx.push(x); sy.push(y); qx.push(x); qy.push(y); viz[x][y]=k; while(!qx.empty()) { x=qx.front(); y=qy.front(); qx.pop(); qy.pop(); FOR(i,1,4) { int xc=x+dx[i]; int yc=y+dy[i]; if(xc<1||yc<1||xc>n||yc>m||viz[xc][yc]||s[xc][yc]!=s[x][y]) continue; cs++; qx.push(xc); qy.push(yc); sx.push(xc); sy.push(yc); viz[xc][yc]=k; } } while(!sx.empty()) { x=sx.top(); y=sy.top(); sx.pop(); sy.pop(); dim[x][y]=cs; } } int main () { #ifndef ONLINE_JUDGE freopen("a.in","r",stdin); freopen("a.out","w",stdout); #endif f>>tip; f>>n>>m; FOR(i,1,n) f>>(s[i]+1); FOR(i,1,n) FOR(j,1,m) if(!viz[i][j]) { ++k; bfs(i,j); if(cs>cmax) cmax=cs; } if(tip==1) { g<<cmax; return 0; } cmax=0; FOR(i,1,n) FOR(j,1,m) { t=0; FOR(l,1,4) { int x=i+dx[l]; int y=j+dy[l]; if(x<1||y<1||x>n||y>m||vi[viz[x][y]]) continue; stx[++t]=x; sty[t]=y; vi[viz[x][y]]=1; } FOR(l,1,t) FOR(r,l+1,t) if(s[stx[l]][sty[l]]>s[stx[r]][sty[r]]) { swap(stx[l],stx[r]); swap(sty[l],sty[r]); } FOR(l,1,t) { if(s[i][j]==s[stx[l]][sty[l]]) continue; car=1; FOR(k,1,t) if(s[stx[k]][sty[k]]==s[stx[l]][sty[l]]) car+=dim[stx[k]][sty[k]]; if(car>cmax) { cmax=car; xs=i; ys=j; col=s[stx[l]][sty[l]]; } } FOR(l,1,t) vi[viz[stx[l]][sty[l]]]=0; } g<<xs<<" "<<ys<<"\n"<<col; return 0; }