#include <fstream>
#include <algorithm>
#include <queue>

#define lmax 405

using namespace std;

char cul,cara,ccurent,cmax;
int tip,n,m,l,c,nrz,maxim,zona_c;
int ap[lmax],dl[5]={0,-1,0,1,0},dc[5]={0,0,1,0,-1};

queue <pair <int,int> >q;
pair<int,int> poz;

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

inline bool bun(int a,int b)
{
    return a>0 && b>0 && a<=n && b<=m;
}
inline bool comp1(el e1,el e2)
{
    if (e1.zona!=e2.zona)
     return e1.zona<e2.zona;
    return e1.nr>e1.nr;
}
inline bool comp2(el e1,el e2)
{
    return e1.car<=e2.car;
}
inline void lee(int l,int c)
{
    a[l][c].zona=zona_c;
    char caract=a[l][c].car;

    q.push(make_pair(l,c));

    while (!q.empty())
     {
         ap[zona_c]++;
         poz=q.front();
         q.pop();

         for (int j=1;j<=4;j++)
         {
             int lc=poz.first+dl[j];
             int cc=poz.second+dc[j];

             if (bun(lc,cc) && a[lc][cc].zona==0 && a[lc][cc].car==caract)
              {
                    q.push(make_pair(lc,cc));
                    a[lc][cc].zona=zona_c;
              }
         }
     }

}
int main()
{
  // freopen("ferma3.in","r",stdin);
   //freopen("ferma3.out","w",stdout);

   scanf("%d %d %d",&tip,&n,&m);
   scanf("%c",&cara);

   for (int i=1;i<=n;i++)
    {
        for (int j=1;j<=m;j++)
          scanf("%c",&a[i][j].car);
        scanf("%c",&cara);
    }

   for (int i=1;i<=n;i++)
     for (int j=1;j<=m;j++)
      if (a[i][j].zona==0)
       {
          zona_c++;
          lee(i,j);
       }
   if (tip==1)
     {
         printf("%d",zona_c);
         return 0;
     }
   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=1;k<=4;k++)
           if (v[k].zona==v[k-1].zona)
            v[k].nr=0;

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

          int ma=v[1].nr;
          cmax=v[1].car;
          for (int k=2;k<=5;k++)
            if (v[k].car==v[k-1].car)
             {nrz+=v[k].nr;
             }
            else
            {
                if (nrz>ma)
                  {
                   ma=nrz;
                   cmax=ccurent;
                  }
                nrz=v[k].nr;
                ccurent=v[k].car;
            }
           if (ma>maxim)
             {
                 maxim=ma;
                 l=i;
                 c=j;
                 cul=cmax;
             }
      }
    printf("%d %d\n%c",l,c,cul);
   }

  return 0;
}