#include <bits/stdc++.h>
using namespace std;
vector<int> solution(vector<vector<int>> matrix) {
int n = matrix.size();
int m = matrix[0].size();
vector<vector<int> > dp_tl_br(n, vector<int>(m));
vector<vector<int> > dp_tr_bl(n, vector<int>(m));
vector<vector<int> > dp_br_tl(n, vector<int>(m));
vector<vector<int> > dp_bl_tr(n, vector<int> (m));
for(int i = 0; i < n; ++i) {
for(int j = 0; j < m; ++j) {
if(matrix[i][j] == 0) {
dp_tl_br[i][j] = 0;
continue;
}
dp_tl_br[i][j] = 1 + ((i - 1 >= 0 && j - 1 >= 0)? dp_tl_br[i - 1][j - 1]: 0);
}
}
for(int i = 0; i < n; ++i) {
for(int j = m - 1; j >= 0; --j) {
if(matrix[i][j] == 0) {
dp_tr_bl[i][j] = 0;
continue;
}
dp_tr_bl[i][j] = 1 + ((i - 1 >= 0 && j + 1 < m)? dp_tr_bl[i - 1][j + 1]: 0);
}
}
for(int i = n - 1; i >= 0; --i) {
for(int j = m - 1; j >= 0; --j) {
if(matrix[i][j] == 0) {
dp_br_tl[i][j] = 0;
continue;
}
dp_br_tl[i][j] = 1 + ((i + 1 < n && j + 1 < m)? dp_br_tl[i + 1][j + 1]: 0);
}
}
for(int i = n - 1; i >= 0; --i) {
for(int j = 0; j < m; ++j) {
if(matrix[i][j] == 0) {
dp_bl_tr[i][j] = 0;
continue;
}
dp_bl_tr[i][j] = 1 + ((i + 1 < n && j - 1 >= 0)? dp_bl_tr[i + 1][j - 1]: 0);
}
}
int cur_max = 0;
int x;
int y;
for(int i = 0; i < n; ++i) {
for(int j = 0; j < m; ++j) {
if (matrix[i][j] == 0) {
continue;
}
int A = dp_tl_br[i][j];
int B = dp_tr_bl[i][j];
int C = dp_br_tl[i][j];
int D = dp_bl_tr[i][j];
A = min(A, B);
A = min(A, C);
A = min(A, D);
if (A > cur_max) {
cur_max = A;
x = i;
y = j;
}
}
}
return {x, y};
}
int main()
{
vector<vector<int> > matrix = {{0,0,0,1,1}};
vector<int> ans = solution(matrix);
cout << ans[0] << " " << ans[1];
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoKdmVjdG9yPGludD4gc29sdXRpb24odmVjdG9yPHZlY3RvcjxpbnQ+PiBtYXRyaXgpIHsKICBpbnQgbiA9IG1hdHJpeC5zaXplKCk7CiAgaW50IG0gPSBtYXRyaXhbMF0uc2l6ZSgpOwoKICB2ZWN0b3I8dmVjdG9yPGludD4gPiBkcF90bF9icihuLCB2ZWN0b3I8aW50PihtKSk7IAogIHZlY3Rvcjx2ZWN0b3I8aW50PiA+IGRwX3RyX2JsKG4sIHZlY3RvcjxpbnQ+KG0pKTsKICB2ZWN0b3I8dmVjdG9yPGludD4gPiBkcF9icl90bChuLCB2ZWN0b3I8aW50PihtKSk7CiAgdmVjdG9yPHZlY3RvcjxpbnQ+ID4gZHBfYmxfdHIobiwgdmVjdG9yPGludD4gKG0pKTsKICAKCiAgZm9yKGludCBpID0gMDsgaSA8IG47ICsraSkgewogICAgZm9yKGludCBqID0gMDsgaiA8IG07ICsraikgewogICAgICBpZihtYXRyaXhbaV1bal0gPT0gMCkgewogICAgICAgIGRwX3RsX2JyW2ldW2pdID0gMDsKICAgICAgICBjb250aW51ZTsKICAgICAgfQogICAgICBkcF90bF9icltpXVtqXSA9IDEgKyAoKGkgLSAxID49IDAgJiYgaiAtIDEgPj0gMCk/IGRwX3RsX2JyW2kgLSAxXVtqIC0gMV06IDApOwogICAgfQogIH0KCgogIGZvcihpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgIGZvcihpbnQgaiA9IG0gLSAxOyBqID49IDA7IC0taikgewogICAgICBpZihtYXRyaXhbaV1bal0gPT0gMCkgewogICAgICAgIGRwX3RyX2JsW2ldW2pdID0gMDsKICAgICAgICBjb250aW51ZTsKICAgICAgfQogICAgICBkcF90cl9ibFtpXVtqXSA9IDEgKyAoKGkgLSAxID49IDAgJiYgaiArIDEgPCBtKT8gZHBfdHJfYmxbaSAtIDFdW2ogKyAxXTogMCk7CiAgICB9CiAgfQoKCiAgZm9yKGludCBpID0gbiAtIDE7IGkgPj0gMDsgLS1pKSB7CiAgICBmb3IoaW50IGogPSBtIC0gMTsgaiA+PSAwOyAtLWopIHsKICAgICAgaWYobWF0cml4W2ldW2pdID09IDApIHsKICAgICAgICBkcF9icl90bFtpXVtqXSA9IDA7CiAgICAgICAgY29udGludWU7CiAgICAgIH0KICAgICAgZHBfYnJfdGxbaV1bal0gPSAxICsgKChpICsgMSA8IG4gJiYgaiArIDEgPCBtKT8gZHBfYnJfdGxbaSArIDFdW2ogKyAxXTogMCk7CiAgICB9CiAgfQoKCiAgZm9yKGludCBpID0gbiAtIDE7IGkgPj0gMDsgLS1pKSB7CiAgICBmb3IoaW50IGogPSAwOyBqIDwgbTsgKytqKSB7CiAgICAgIGlmKG1hdHJpeFtpXVtqXSA9PSAwKSB7CiAgICAgICAgZHBfYmxfdHJbaV1bal0gPSAwOwogICAgICAgIGNvbnRpbnVlOwogICAgICB9CiAgICAgIGRwX2JsX3RyW2ldW2pdID0gMSArICgoaSArIDEgPCBuICYmIGogLSAxID49IDApPyBkcF9ibF90cltpICsgMV1baiAtIDFdOiAwKTsKICAgIH0KICB9CgoKICBpbnQgY3VyX21heCA9IDA7CiAgaW50IHg7CiAgaW50IHk7CgogIGZvcihpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgIGZvcihpbnQgaiA9IDA7IGogPCBtOyArK2opIHsKICAgICAgaWYgKG1hdHJpeFtpXVtqXSA9PSAwKSB7CiAgICAgICAgY29udGludWU7CiAgICAgIH0KCiAgICAgIGludCBBID0gZHBfdGxfYnJbaV1bal07CiAgICAgIGludCBCID0gZHBfdHJfYmxbaV1bal07CiAgICAgIGludCBDID0gZHBfYnJfdGxbaV1bal07CiAgICAgIGludCBEID0gZHBfYmxfdHJbaV1bal07CgogICAgICBBID0gbWluKEEsIEIpOwogICAgICBBID0gbWluKEEsIEMpOwogICAgICBBID0gbWluKEEsIEQpOwoKICAgICAgaWYgKEEgPiBjdXJfbWF4KSB7CiAgICAgICAgY3VyX21heCA9IEE7CiAgICAgICAgeCA9IGk7CiAgICAgICAgeSA9IGo7CiAgICAgIH0KICAgIH0KICB9CgogIHJldHVybiB7eCwgeX07Cn0KCmludCBtYWluKCkKewogIHZlY3Rvcjx2ZWN0b3I8aW50PiA+IG1hdHJpeCA9IHt7MCwwLDAsMSwxfX07CiAgCiAgCnZlY3RvcjxpbnQ+IGFucyA9IHNvbHV0aW9uKG1hdHJpeCk7CmNvdXQgPDwgYW5zWzBdIDw8ICIgIiA8PCBhbnNbMV07CiAKICByZXR1cm4gMDsKfQ==