#include<cstdio>

using namespace std;

int jos[2005][2005], stanga[2005][2005];
int mat[2005][2005];
int nr, x, y;

void rezolva(int n, int maxt)
{
    int i, j, t, tm;
    nr = 1;
    for(i = 2; i <= n - nr; ++ i)
        for(j = 2; j <= n - nr; ++ j)
        {
            tm = maxt;
            if(tm > jos[i][j])
              tm = jos[i][j];
            if(tm > stanga[i][j])
                tm = stanga[i][j];
            if(tm <= nr)
              tm = 0;
            for(t = tm; t >= nr; -- t)  
                if(jos[i][j] >= t && jos[i + t][j] >= t && stanga[i][j] >= t && stanga[i][j + t] >= t)
                    {
                        nr = t;
                        x = i;
                        y = j;
                    }
        }
}

int main()
{
    //freopen("window.in", "r", stdin);
    //freopen("window.out", "w", stdout);
    int n, i, j, k, maxt;
    scanf("%d", &n);
    for(i = 1; i <= n; ++ i)
        for(j = 1; j <= n; ++ j)
            scanf("%d", &mat[i][j]);
    for(j = 1; j <= n; ++ j)
    {
        for(i = 1; i <= n; ++ i)
        {
            k = i;
            while(mat[k][j] != mat[k][j - 1] && k <= n)
            {
                ++ k;
            }
            for(i = i; i <= k; ++ i)
                stanga[i][j] = k - i;
            i = k;
        }
    }
    for(i = 1; i <= n; ++ i)
    {
        for(j = 1; j <= n; ++ j)
        {
            k = j;
            while(mat[i][k] != mat[i - 1][k] && k < n)
            {
                ++ k;
            }
            for(j = j; j <= k; ++ j)
                jos[i][j] = k - j;
            j = k;
        }
    }
    maxt = 0;
    for(i = 1; i <= n; ++ i)
        for(j = 1; j <= n; ++ j)
            if(jos[i][j] > maxt && stanga[i][j] > maxt)
            {
                maxt = jos[i][j];
                if(jos[i][j] > stanga[i][j])
                    maxt = stanga[i][j];
            }
    if(maxt > n - 2)
      maxt = n - 2;
    rezolva(n, maxt);
    printf("%d %d %d", nr, x, y);
    return 0;
}