#include <iostream>
using namespace std;
int nums[1 << 11][1 << 11];
int xored[1 << 11][1 << 11];
int main() {
    int n;
    cin >> n;
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= n; ++j) {
            cin >> nums[i][j];
            for (int p = 0; p < 12; ++p)
                nums[i][j] = (nums[i][j] * 1087L) + 12347L;
            xored[i][j] = nums[i][j] ^ xored[i-1][j] ^ xored[i][j-1] ^ xored[i-1][j-1];
        }
    }
    int max = 0;
    int ansi, ansj;
    ansi = ansj = -1;
    for (int i = 2; i < n; ++i) {
        for (int j = 2; j < n; ++j) {
            if (nums[i][j] == nums[i-1][j] || nums[i][j] == nums[i][j-1]) {
                //int k = i - 1;
                //if (k > j - 1) k = j-1;
                //if (k >= n) k = n-1;
                for (int k = max+2; k < i && k < j && k < n; k+=2) {
                //for (; k >= max+2; k-=2) {
                    int temp = xored[i][j] ^ xored[i-k][j] ^ xored[i][j-k] ^ xored[i-k][j-k];
                    //cout << i << ' ' << j << ' ' << k << ' ' << temp << endl;
                    if (temp == 0 && k > max) {
                        ansi = i - k;
                        ansj = j - k;
                        max = k;
                        break;
                    }
                }
            }
        }
    }
    cout << max << ' ' << ansi + 1 << ' ' << ansj + 1<< endl;
    return 0;
}
