#include <stdio.h>
#include <stdlib.h>

char a[400][401];
int seen[400][400], groups[400][400], gvector[160000];
int n, m, l = 0, is, js, max = 0, g = 0;
char cs;

void Init()
{
    int i, j;

    for (i = 0; i < n; i++)
        for (j = 0; j < m; j++)
            seen[i][j] = 0;
}


void Lee(int x, int y)
{
    char c = a[x][y];
    l++;
    seen[x][y] = 1;
    groups[x][y] = g;

    if (x - 1 >= 0)
        if ((!seen[x-1][y]) && (c == a[x-1][y]))
            Lee(x-1, y);

    if (x + 1 < n)
        if ((!seen[x+1][y]) && (c == a[x+1][y]))
            Lee(x+1,y);

    if (y-1 >= 0)
        if ((!seen[x][y-1]) && (c == a[x][y-1]))
            Lee(x,y-1);

    if (y+1 < m)
        if ((!seen[x][y+1]) && (c == a[x][y+1]))
            Lee(x,y+1);
}

void Check(int x, int y)
{
    if (x - 1 >= 0)
        {
            if ((gvector[groups[x-1][y]] + 1 > max) && (groups[x-1][y] != groups[x][y]))
            {
                is = x;
                js = y;
                cs = a[x-1][y];
                max++;
            }
            else if ((gvector[groups[x-1][y]] + 1 == max) && (groups[x-1][y] != groups[x][y]) && (cs > a[x-1][y]))
            {
                is = x;
                js = y;
                cs = a[x-1][y];
            }
        }

    if (x + 1 < n)
        {
            if ((gvector[groups[x+1][y]] + 1 > max) && (groups[x+1][y] != groups[x][y]))
            {
                is = x;
                js = y;
                cs = a[x+1][y];
                max++;
            }
            else if ((gvector[groups[x+1][y]] + 1 == max) && (groups[x+1][y] != groups[x][y]) && (cs > a[x+1][y]))
            {
                is = x;
                js = y;
                cs = a[x+1][y];
            }
        }
    if (y-1 >= 0)
        {
            if ((gvector[groups[x][y-1]] + 1 > max) && (groups[x][y-1] != groups[x][y]))
            {
                is = x;
                js = y;
                cs = a[x][y-1];
                max++;
            }
            else if ((gvector[groups[x][y-1]] + 1 == max) && (groups[x][y-1] != groups[x][y]) && (cs > a[x][y-1]))
            {
                is = x;
                js = y;
                cs = a[x][y-1];
            }
        }

    if (y+1 < m)
        {
            if ((gvector[groups[x][y+1]] + 1 > max) && (groups[x][y+1] != groups[x][y]))
            {
                is = x;
                js = y;
                cs = a[x][y+1];
                max++;
            }
            else if ((gvector[groups[x][y+1]] + 1 == max) && (groups[x][y+1] != groups[x][y]) && (cs > a[x][y+1]))
            {
                is = x;
                js = y;
                cs = a[x][y+1];
            }
        }


     if (x - 1 >= 0)
     {
         if (y - 1 >= 0)
             if ((groups[x-1][y] != groups[x][y-1]) && (a[x-1][y] == a[x][y-1]) && (groups[x-1][y] != groups[x][y]) && (groups[x][y] != groups[x][y-1]))
                {
                    if (gvector[groups[x-1][y]] + gvector[groups[x][y-1]] > max)
                     {
                        is = x;
                        js = y;
                        cs = a[x-1][y];
                        max = gvector[groups[x-1][y]] + gvector[groups[x][y-1]];
                     }
                     else if ((gvector[groups[x-1][y]] + gvector[groups[x][y-1]] == max) && (cs > a[x-1][y]))
                     {
                        is = x;
                        js = y;
                        cs = a[x-1][y];
                     }
                }

        if (x + 1 < n)
            if ((groups[x-1][y] != groups[x+1][y]) && (a[x-1][y] == a[x+1][y]) && (groups[x-1][y] != groups[x][y]) && (groups[x][y] != groups[x+1][y]))
                {
                    if (gvector[groups[x-1][y]] + gvector[groups[x+1][y]] > max)
                     {
                        is = x;
                        js = y;
                        cs = a[x-1][y];
                        max = gvector[groups[x-1][y]] + gvector[groups[x+1][y]];
                     }
                     else if ((gvector[groups[x-1][y]] + gvector[groups[x+1][y]] == max) && (cs > a[x-1][y]))
                     {
                        is = x;
                        js = y;
                        cs = a[x-1][y];
                     }
                }

        if (y+1 < m)
            if ((groups[x-1][y] != groups[x][y+1]) && (a[x-1][y] == a[x][y+1]) && (groups[x-1][y] != groups[x][y]) && (groups[x][y] != groups[x][y+1]))
                {
                    if (gvector[groups[x-1][y]] + gvector[groups[x][y+1]] > max)
                     {
                        is = x;
                        js = y;
                        cs = a[x-1][y];
                        max = gvector[groups[x-1][y]] + gvector[groups[x][y+1]];
                     }
                     else if ((gvector[groups[x-1][y]] + gvector[groups[x][y+1]] == max) && (cs > a[x-1][y]))
                     {
                        is = x;
                        js = y;
                        cs = a[x-1][y];
                     }
                }
     }

     if (y - 1 >= 0)
     {
         if (x + 1 < n)
             if ((groups[x][y-1] != groups[x+1][y]) && (a[x][y-1] == a[x+1][y]) && (groups[x+1][y] != groups[x][y]) && (groups[x][y-1] != groups[x][y]))
                {
                    if (gvector[groups[x][y-1]] + gvector[groups[x+1][y]] > max)
                     {
                        is = x;
                        js = y;
                        cs = a[x][y-1];
                        max = gvector[groups[x][y-1]] + gvector[groups[x+1][y]];
                     }
                     else if ((gvector[groups[x][y-1]] + gvector[groups[x+1][y]] == max) && (cs > a[x][y-1]))
                     {
                        is = x;
                        js = y;
                        cs = a[x][y-1];
                     }
                }

        if (y+1 < m)
            if ((groups[x][y-1] != groups[x][y+1]) && (a[x][y-1] == a[x][y+1]) && (groups[x][y-1] != groups[x][y]) && (groups[x][y+1] != groups[x][y]))
                {
                    if (gvector[groups[x][y-1]] + gvector[groups[x][y+1]] > max)
                     {
                        is = x;
                        js = y;
                        cs = a[x][y-1];
                        max = gvector[groups[x][y-1]] + gvector[groups[x][y+1]];
                     }
                     else if ((gvector[groups[x][y-1]] + gvector[groups[x][y+1]] == max) && (cs > a[x][y-1]))
                     {
                        is = x;
                        js = y;
                        cs = a[x][y-1];
                     }
                }
     }

    if (x + 1 < n)
        if (y+1 < m)
            if ((groups[x+1][y] != groups[x][y+1]) && (a[x+1][y] == a[x][y+1]) && (groups[x+1][y] != groups[x][y]) && (groups[x][y+1] != groups[x][y]))
                {
                    if (gvector[groups[x+1][y]] + gvector[groups[x][y+1]] > max)
                     {
                        is = x;
                        js = y;
                        cs = a[x+1][y];
                        max = gvector[groups[x+1][y]] + gvector[groups[x][y+1]];
                     }
                     else if ((gvector[groups[x+1][y]] + gvector[groups[x][y+1]] == max) && (cs > a[x+1][y]))
                     {
                        is = x;
                        js = y;
                        cs = a[x+1][y];
                     }
                }

}

int main()
{
    int i, j, type;

    scanf("%d%d%d", &type, &n, &m);
    gets(a[0]);
    for (i = 0; i < n; i++)
        gets(a[i]);

    Init();
    for (i = 0; i < n; i++)
            for (j = 0; j < m; j++)
                if (!seen[i][j])
                {
                    l = 0;
                    g++;
                    Lee(i, j);
                    gvector[g] = l;
                    if (l > max)
                        max = l;
                }
    if (type == 1)
        printf("%d", max);
    if (type == 2)
    {
        for (i = 0; i < n; i++)
            for (j = 0; j < m; j++)
                Check(i, j);

        printf("%d %d\n%c", is+1, js+1, cs);
    }

    return 0;
}