#include<iostream>
#include<fstream>
#include<cstdlib>
#include<iomanip>
#include<set>
#include<map>
#include<algorithm>
#include<vector>
#include<cstdio>
#include<queue>
#include<stack>
#include<cmath>
#define ll long long
#define pb push_back
#define ld long double
#define mp make_pair
#define pii pair<int, int>
using namespace std;

int maxk = -1, maxi, maxj;
int a[2000][2000];
int sumX[2000][2000];
int sumY[2000][2000];

int n;

bool good(int x, int y, int k) {
    return (sumX[x + k][y] - sumX[x - 1][y] == 0) &&
           (sumX[x + k][y + k + 1] - sumY[x - 1][y + k + 1] == 0) &&
           (sumY[x][y + k] - sumY[x][y - 1] == 0) &&
           (sumY[x + k + 1][y + k] - sumY[x + k + 1][y - 1] == 0); 
}

bool good2(int x, int y, int k) {
    return (a[x][y] != a[x - 1][y]) && 
           (a[x][y] != a[x][y - 1]) && 
           (a[x + k][y] != a[x + k + 1][y]) && 
           (a[x + k][y] != a[x + k][y - 1]) && 
           (a[x][y + k] != a[x][y + k + 1]) && 
           (a[x][y + k] != a[x - 1][y + k]) && 
           (a[x + k][y + k] != a[x + k + 1][y + k]) && 
           (a[x + k][y + k] != a[x + k][y + k + 1]);
}

int main(void) {
    scanf("%d", &n);
    int tm;
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            scanf("%d", &tm);
            a[i][j] = tm;
        }
    }
    /*for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            if (used[a[i][j]]) {
                a[i][j] = -a[i][j];
            }
            else used[a[i][j]] = true;
        }
    }*/
    for (int i = 1; i < n; ++i) {
        for (int j = 1; j < n; ++j) {
            if (j > 0) {
                sumY[i][j] = sumY[i][j - 1];
                sumX[j][i] = sumX[j - 1][i];
            }
            if (a[i - 1][j] == a[i][j]) {
                sumY[i][j]++;
            }
            if (a[j][i - 1] == a[j][i]) {
                sumX[j][i]++;
            }
        }
    }
    for (int k = n - 1; k >= 0; --k) {
        for (int i = 1; i < n - 1; ++i) {
            if (i + k >= n - 1) continue;
            for (int j = 1; j < n - 1; ++j) {
                if (j + k >= n - 1)
                    continue;
                if (good(i, j, k) && good2(i, j, k)) {
                    cout << k + 1 << " " << i + 1 << " " << j + 1 << endl;
                    return 0;
                }
            }
        }
    }
    exit(100);
}
