#include<iostream>
using namespace std;
int i,j,n,m,marime[100000],a[405][405],tip,zona[405][405],nrz;

void dfs(int i, int j) {
     
     if (i==0||j==0||i>n||j>m) return;
    
    zona[i][j]==nrz;
    ++marime[nrz];
    
    if (a[i-1][j]==a[i][j]&&zona[i-1][j]==0) dfs(i-1,j);    
    if (a[i][j-1]==a[i][j]&&zona[i][j-1]==0) dfs(i,j-1);
    if (a[i+1][j]==a[i][j]&&zona[i+1][j]==0) dfs(i+1,j);
    if (a[i][j+1]==a[i][j]&&zona[i][j+1]==0) dfs(i,j+1);
}

int main(void) {
     
    cin>>tip;
    
    cin>>n>>m;
    
    for (i=1; i<=n; ++i)
     for (j=1; j<=m; ++j) cin>>a[i][j];
     
    for (i=1; i<=n; ++i)
     for (j=1; j<=m; ++j)
      if (zona[i][j]==0) {
                         ++nrz;
                         dfs(i,j);
                         }
                         
    if (tip==1) {
                
                int sol=0;
                
                for (i=1; i<=nrz; ++i) sol=max(sol,marime[i]);
                
                cout<<sol;
                
                }
                
    else {
         
         int sol=0, x1, y1, col;
         
         for (i=1; i<=n; ++i)
          for (j=1; j<=m; ++j) {
              
              int v1=marime[zona[i-1][j]], v2=marime[zona[i][j-1]], v3=marime[zona[i+1][j]], v4=marime[zona[i][j+1]];
              
              if (a[i-1][j]==a[i][j-1]&&zona[i-1][j]!=zona[i][j-1]) v1+=v2;
              if (a[i-1][j]==a[i+1][j]&&zona[i+1][j]!=zona[i-1][j]) v1+=v3;
              if (a[i][j+1]==a[i-1][j]&&zona[i][j+1]!=zona[i-1][j]) v1+=v4;
              
              if (a[i][j-1]==a[i-1][j]&&zona[i][j-1]!=zona[i-1][j]) v2+=v1;
              if (a[i][j-1]==a[i+1][j]&&zona[i+1][j]!=zona[i][j-1]) v2+=v3;
              if (a[i][j+1]==a[i][j-1]&&zona[i][j+1]!=zona[i][j-1]) v2+=v4;  
              
              if (a[i+1][j]==a[i-1][j]&&zona[i+1][j]!=zona[i-1][j]) v3+=v1;
              if (a[i][j-1]==a[i+1][j]&&zona[i+1][j]!=zona[i][j-1]) v3+=v2;
              if (a[i][j+1]==a[i+1][j]&&zona[i][j+1]!=zona[i+1][j]) v3+=v4;  
              
              if (a[i][j+1]==a[i-1][j]&&zona[i][j+1]!=zona[i-1][j]) v4+=v1;
              if (a[i][j-1]==a[i][j+1]&&zona[i][j+1]!=zona[i][j-1]) v4+=v2;
              if (a[i][j+1]==a[i+1][j]&&zona[i][j+1]!=zona[i+1][j]) v4+=v3;
              
              int sol1=max(max(v1,v2),max(v3,v4));
              
              if (sol1>sol) {
                            
                            sol=sol1;
                            
                            x1=i;
                            y1=j;
                            
                            if (sol1==v1) col=a[i-1][j];
                            else if (sol1==v2) col=a[i][j-1];
                            else if (sol1==v3) col=a[i+1][j];
                            else col=a[i][j+1];
                            
                            } 
              
              }
          
          cout<<x1<<" "<<y1<<"\n"<<char(col);
         
         }
       
    
    return 0;
}