n×m개의 단위 칸으로 이루어진 직사각형 도시 지도가 주어진다 (1≤n≤100, 1≤m≤100). 행은 위에서 아래로 1부터 n까지, 열은 왼쪽에서 오른쪽으로 1부터 m까지 번호가 매겨진다. 각 칸은 빈 칸이거나 막힌 칸이며, 차량은 빈 칸으로만 다닐 수 있다.
빈 칸에서는 변을 맞대고 인접한 빈 칸으로 이동할 수 있다. 단, 방금 떠나온 칸으로 곧바로 되돌아갈 수는 없다(유턴 금지). 또한 좌회전은 절대 할 수 없다. 즉 매 이동 후에는 진행 방향을 기준으로 직진하거나 우회전만 할 수 있다. 출발 칸에서의 첫 이동은 아직 이전 방향이 없으므로 네 방향 중 어디로든 향할 수 있다.
경로의 길이는 그 경로가 지나가는 칸의 개수이며, 양 끝 칸도 포함하여 센다. 같은 칸을 여러 번 지나가면 지나간 횟수만큼 센다.
서로 다른 두 칸 A와 B가 주어진다. 좌회전 없이 A에서 B까지 갈 수 있는지 판정하고, 갈 수 있다면 그러한 경로의 최소 길이를 구하여라. A 또는 B가 막힌 칸이면 경로는 존재하지 않는다.
첫째 줄에 두 정수 n과 m이 공백 하나로 구분되어 주어진다.
다음 n개의 줄에는 각각 길이 m인 문자열이 주어지며, 지도의 한 행을 나타낸다. 문자열은 숫자 0과 1로 이루어진다. 0은 빈 칸, 1은 막힌 칸이다.
그다음 줄에는 칸 A의 행 번호와 열 번호가 두 정수로 주어진다. 이어지는 줄에는 같은 형식으로 칸 B의 행 번호와 열 번호가 주어진다. 두 칸 A와 B는 서로 다르다. 입력은 항상 올바른 형식이므로 따로 검증할 필요가 없다.
한 줄을 출력한다.
좌회전 없이 A에서 B로 가는 경로가 없거나 A 또는 B가 막힌 칸이면 NIE(폴란드어로 "아니오") 한 단어를 출력한다.
그렇지 않으면 정수 하나를 출력한다. 좌회전 없이 A에서 B까지 가는 경로의 최소 길이, 즉 A와 B를 포함하여 지나가는 칸의 개수를 출력한다.