#include <iostream> #include <fstream> #include <bitset> #include <queue> #define M 405 using namespace std; fstream fin("ferma.in",ios::in),fout("ferma.out",ios::out); int di[]={-1,0,1,0},dj[]={0,1,0,-1},n,m,t,who[M][M],cost[M*M],aux[M*M]; queue <pair<int,int> > v; char color,s[M][M]; void citire(){ cin>>t>>n>>m; for(int i=1;i<=n;i++) cin>>(s[i]+1); } int bfs(int i,int j,int ind) { int total=1,k; who[i][j]=ind; v.push(make_pair(i,j)); while(!v.empty()) { i=v.front().first; j=v.front().second; for(k=0;k<4;k++) { if(s[i+di[k]][j+dj[k]]==s[i][j]&&0<i+di[k]&&i+di[k]<=n&&0<j+dj[k]&&j+dj[k]<=m) { if(who[i+di[k]][j+dj[k]]==0) { who[i+di[k]][j+dj[k]]=ind; total++; v.push(make_pair(i+di[k],j+dj[k])); } } } v.pop(); } return total; } void cmp(int x1,int y1,int x2,int y2) { if(who[x1][y1]!=who[x2][y2]&& 0<x1&&x1<=n&& 0<x2&&x2<=n&& 0<y1&&y1<=m&& 0<y2&&y2<=m) { if(s[x1][y1]==s[x2][y2]) { aux[who[x1][y1]]=max(aux[who[x1][y1]],cost[who[x1][y1]]+cost[who[x2][y2]]); } } } int main() { int a,i,j,ind=1,maxim1=-99999,maxim2=-99999,xi,xj,k,r; citire(); for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { if(who[i][j]==0) { cost[ind]=bfs(i,j,ind); maxim1=max(maxim1,cost[ind]); ind++; } } } if(t==2) { for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { //prima //aux[who[i-1][j]]=-M; cmp(i-1,j,i,j+1); cmp(i-1,j,i+1,j); cmp(i-1,j,i,j-1); //a doua //aux[who[i][j+1]]=-M; cmp(i,j+1,i+1,j); cmp(i,j+1,i,j-1); //a treia //aux[who[i+1][j]]=-M; cmp(i+1,j,i,j-1); for(k=0;k<4;k++) { if(who[i][j]!=who[i+di[k]][j+dj[k]]&&s[i][j]!=s[i+di[k]][j+dj[k]]) { if(maxim2<aux[who[i+di[k]][j+dj[k]]]) { maxim2=aux[who[i+di[k]][j+dj[k]]]; xi=i; xj=j; color=s[i+di[k]][j+dj[k]]; } } } } } cout<<xi<<" "<<xj<<"\n"<<color<<"\n"; return 0; } //cout<<maxim1<<"\n"; return 0; }