#include <bits/stdc++.h>
using namespace std;
int X, Y, DP[1001][1001];
bool GRAF[1001][1001];
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin >> Y >> X;
for (int y = 1; y <= Y; y ++)
for (int x = 1; x <= X; x ++)
cin >> GRAF[x][y];
const unsigned int INF = 1e6 + 1;
for (int y = 1; y <= Y; y ++)
for (int x = 1; x <= X; x ++)
DP[x][y] = INF;
for (int x = 1; x <= X; x ++) {
for (int y = 1; y <= Y; y ++) {
if (!GRAF[x][y] and !GRAF[x - 1][y])
DP[x][y] = DP[x - 1][y];
}
for (int y = 1; y <= Y; y ++) {
if (!GRAF[x][y]) {
if (y > 1)
DP[x][y] = min(DP[x][y], DP[x][y - 1] + 1);
DP[x][y] = min(DP[x][y], DP[x - 1][y]);
if (y < Y)
DP[x][y] = min(DP[x][y], DP[x][y + 1] + 1);
}
}
}
int mn = DP[X][1];
for (int y = 2; y <= Y; y ++)
mn = min(mn, DP[X][y]);
if (mn != INF)
cout << mn;
else
cout << "NIE";
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IFgsIFksIERQWzEwMDFdWzEwMDFdOyAKYm9vbCBHUkFGWzEwMDFdWzEwMDFdOwoKaW50IG1haW4oKSB7Cglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwoJY2luLnRpZSgwKTsgY291dC50aWUoMCk7CgkKCWNpbiA+PiBZID4+IFg7CgoJZm9yIChpbnQgeSA9IDE7IHkgPD0gWTsgeSArKykKCQlmb3IgKGludCB4ID0gMTsgeCA8PSBYOyB4ICsrKQoJCQljaW4gPj4gR1JBRlt4XVt5XTsKCgljb25zdCB1bnNpZ25lZCBpbnQgSU5GID0gMWU2ICsgMTsKCWZvciAoaW50IHkgPSAxOyB5IDw9IFk7IHkgKyspCgkJZm9yIChpbnQgeCA9IDE7IHggPD0gWDsgeCArKykKCQkJRFBbeF1beV0gPSBJTkY7CgoJZm9yIChpbnQgeCA9IDE7IHggPD0gWDsgeCArKykgewoJCWZvciAoaW50IHkgPSAxOyB5IDw9IFk7IHkgKyspIHsKCQkJaWYgKCFHUkFGW3hdW3ldIGFuZCAhR1JBRlt4IC0gMV1beV0pCgkJCQlEUFt4XVt5XSA9IERQW3ggLSAxXVt5XTsKCQl9CgoJCWZvciAoaW50IHkgPSAxOyB5IDw9IFk7IHkgKyspIHsKCQkJaWYgKCFHUkFGW3hdW3ldKSB7CgkJCQlpZiAoeSA+IDEpCgkJCQkJRFBbeF1beV0gPSBtaW4oRFBbeF1beV0sIERQW3hdW3kgLSAxXSArIDEpOwoKCQkJCURQW3hdW3ldID0gbWluKERQW3hdW3ldLCBEUFt4IC0gMV1beV0pOwoKCQkJCWlmICh5IDwgWSkKCQkJCQlEUFt4XVt5XSA9IG1pbihEUFt4XVt5XSwgRFBbeF1beSArIDFdICsgMSk7CgkJCX0KCQl9Cgl9CgoJaW50IG1uID0gRFBbWF1bMV07Cglmb3IgKGludCB5ID0gMjsgeSA8PSBZOyB5ICsrKQoJCW1uID0gbWluKG1uLCBEUFtYXVt5XSk7CgkKCWlmIChtbiAhPSBJTkYpCgkJY291dCA8PCBtbjsKCWVsc2UKCQljb3V0IDw8ICJOSUUiOwp9