#include <iostream>
#include <algorithm>

#define lmax 405

using namespace std;

char cul;
int tip,n,m,l,c,nrz,maxim,zona_c;
int ap[lmax];

struct el
{
    char car;
    int zona,nr;
}v[5],a[lmax][lmax];

inline bool comp1(el e1,el e2)
{
    if (e1.zona!=e2.zona)
     return e1.zona<e2.zona;
    e1.nr>e1.nr;
}
inline bool comp2(el e1,el e2)
{
    return e1.car<e2.car;
}
inline void fill(int l,int c)
{
    a[l][c].zona=zona_c;
    ap[zona_c]++;
    if (a[l+1][c].car==a[l][c].car && a[l+1][c].zona==0)
     fill(l+1,c);
    if (a[l-1][c].car==a[l][c].car && a[l-1][c].zona==0)
     fill(l-1,c);
    if (a[l][c+1].car==a[l][c].car && a[l][c+1].zona==0)
     fill(l,c+1);
    if (a[l][c-1].car==a[l][c].car && a[l][c-1].zona==0)
     fill(l,c-1);
}
int main()
{
   cin>>tip>>n>>m;

   for (int i=1;i<=n;i++)
    for (int j=1;j<=m;j++)
      cin>>a[i][j].car;

   for (int i=1;i<=n;i++)
     for (int j=1;j<=m;j++)
      if (a[i][j].zona==0)
       {
          zona_c++;
          fill(i,j);
       }
   if (tip==1)
     cout<<zona_c;
   else
   {
    for (int i=1;i<=n;i++)
     for (int j=1;j<=m;j++)
      a[i][j].nr=ap[a[i][j].zona];

   for (int i=1;i<=n;i++)
    for (int j=1;j<=m;j++)
      {
          v[1]=a[i-1][j];
          v[2]=a[i+1][j];
          v[3]=a[i][j-1];
          v[4]=a[i][j+1];

          sort(v+1,v+5,comp1);

          for (int k=2;k<=4;k++)
           if (v[k].zona==v[k-1].zona)
            v[k].nr=0;

          sort(v+1,v+5,comp2);

          int ma=0;
          for (int k=1;k<=4;k++)
            if (v[k].car==v[k-1].car)
             nrz+=v[k].nr;
            else
            {
                if (nrz>ma)
                  ma=nrz;
                nrz=v[k].nr;
            }
           if (ma>maxim)
             {
                 maxim=ma;
                 l=i;
                 c=j;
                 cul=a[i][j].car;
             }
      }
    cout<<l<<" "<<c<<'\n'<<cul;
   }

  return 0;
}