#include <iostream>

const int NMAX = 450;

using namespace std;

int N,M,type,grupa[NMAX][NMAX],sizegroup[NMAX*NMAX],color[NMAX*NMAX],marime,nrgrupe;
bool used[NMAX][NMAX];
int maximm,maximusus,mx,my;
char s[NMAX][NMAX],aux[NMAX],colma;

int dx[] = {0,1,0,-1};
int dy[] = {1,0,-1,0};

void filly(int x, int y, char color)
{
    marime++;
    grupa[x][y] = nrgrupe;

    for (int i = 0; i < 4; ++i)
    {
        int newx = x + dx[i];
        int newy = y + dy[i];

        if (newx < 1 || newx > N)
            continue;
        if (newy < 1 || newy > M)
            continue;

        if (s[newx][newy] == color && !grupa[newx][newy])
            filly(newx,newy,color);
    }
}

int main()
{
    cin >> type;
    cin >> N >> M;

    cin.getline(aux,123);

    for (int i = 1; i <= N; ++i)
    {
        cin.getline(s[i]+1,430);
    }

    for (int i = 1; i <= N; ++i)
    {
        for (int j = 1; j <= M; ++j)
        {
            if (grupa[i][j] == 0)
            {
                marime = 0;
                nrgrupe++;
                filly(i,j,s[i][j]);
                sizegroup[nrgrupe] = marime;
                if (marime > maximm)
                {
                    maximm = marime;
                }
            }
        }
    }

    if (type == 1)
    {
        cout << maximm;
        return 0;
    }

    for (int i = 1; i <= N; ++i)
    {
        for (int j = 1; j <= M; ++j)
        {
            for (int k = 0; k < 4; ++k)
            {
                int newx1 = i + dx[k];
                int newy1 = j + dy[k];

                if (newx1 < 1 || newx1 > N)
                    continue;
                if (newy1 < 1 || newy1 > M)
                    continue;

                char poscol = s[newx1][newy1];

                int candy = 1;

                for (int kk = 0; kk < 4; ++kk)
                {
                    int newx2 = i + dx[kk];
                    int newy2 = i + dy[kk];

                    if (newx2 < 1 || newx2 > N)
                        continue;
                    if (newy2 < 1 || newy2 > M)
                        continue;

                    if (s[newx2][newy2] == poscol)
                    {
                        candy += sizegroup[ grupa[newx2][newy2] ];
                    }
                }

                if (candy > maximusus)
                {
                    maximusus = candy;
                    mx = i;
                    my = j;
                    colma = poscol;
                }
            }
        }
    }

    cout << mx << " " << my << '\n';
    cout << colma;

    return 0;
}