#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<vector>
#include<queue>
using namespace std;
/*
#include<fstream>
ifstream cin("pharm.in");
ofstream cout("pharm.out");
*/
const int MAX_N = 402;

queue <pair <int, int> > q;
vector <pair <int,int> > v;
char a[MAX_N][MAX_N];
int dim[MAX_N][MAX_N];
int mp[MAX_N][MAX_N],nr;
bool viz[MAX_N][MAX_N];
int i,j,n,m,tip,lmax;
char culoare[5];
int este[5];
int dx[]={0,0,-1,1};
int dy[]={1,-1,0,0};

bool ok(const int &i, const int &j){
     return (i>=1 && i<=n && j>=1 && j<=m);
}

bool ok2(int limit, int cc){
     for(int j=1;j<=limit;j++)
       if(este[j]==cc) return 0;
     return 1;
}

int  bfs(int xi, int yj){
     int p=0;
     
     viz[xi][yj]=1;
     q.push(make_pair(xi,yj));
     
     while(v.size()) v.pop_back();
     
     while(q.size())
          {
           int x=q.front().first;
           int y=q.front().second;
           q.pop();
           v.push_back(make_pair(x,y));
           
           for(int j=0;j<4;j++)
              {
               int xn=x+dx[j];
               int yn=y+dy[j];
               if(ok(xn,yn) && !viz[xn][yn] && a[x][y]==a[xn][yn])
                 {
                  viz[xn][yn]=1;
                  q.push(make_pair(xn,yn));
                 }     
              }
          }
     
     p=v.size(); ++nr;
     for(int j=0;j<p;j++)
        {
         dim[v[j].first][v[j].second]=p;
         mp[v[j].first][v[j].second]=nr;
        }
     
     return p;
}

int main(){
    cin>>tip>>n>>m;
    for(i=1;i<=n;i++) cin>>(a[i]+1);
    
    for(i=1;i<=n;i++)
      for(j=1;j<=m;j++)
        viz[i][j]=0;
    
    for(i=1;i<=n;i++)
      for(j=1;j<=m;j++)
        if(!viz[i][j]) lmax=max(lmax,bfs(i,j));
    
    if(tip==1) cout<<lmax;
    else{
         int sol=1;
         int xi=1;
         int yj=1;
         char col='z';
         for(i=1;i<=n;i++)
           for(j=1;j<=m;j++)
           {
             int q=0;
             for(int k=0;k<4;k++)
                {
                 int x=i+dx[k];
                 int y=j+dy[k];
                 if(ok(x,y) && mp[i][j]!=mp[x][y]) culoare[++q]=a[x][y];
                }               
             /*
             cout<<i<<" "<<j<<" : "<<q<<endl;
             
             for(int k=1;k<=q;k++) cout<<culoare[k]<<" ";
             cout<<endl;
             */
             
             for(int aux=1;aux<=q;aux++)  
                {
                 int suma=1; 
                 int q2=1; 
                 este[1]=mp[i][j];
                 for(int k=0;k<4;k++)
                    {
                     int x=i+dx[k];
                     int y=j+dy[k];
                     
                     if(ok(x,y) && ok2(q2,mp[x][y]) && culoare[aux]==a[x][y] && mp[i][j]!=mp[x][y]) 
                        { suma+=dim[x][y]; este[++q2]=mp[x][y]; }
                    }  
                 //cout<<suma<<endl;   
                 if(suma>sol){
                              sol=suma;
                              xi=i;
                              yj=j;
                              col=culoare[aux];
                             }           
                   
                }   
           } 
         
         cout<<xi<<' '<<yj<<'\n';  
         cout<<col;
        }
    /*
    cin.close();
    cout.close();
    */
    return 0;
}