택배 기사는 상자 하나를 손님 집까지 옮겨야 한다. 상자를 들 수는 없어서 굴려서 옮기기로 했다.
상자는 1×1×3 크기이고, 처음에는 1×1 면이 바닥에 닿은 채로 서 있다.
지도는 n×m 격자이고, 칸마다 땅이거나 싱크홀이다. 한 번 굴리면 상자는 바닥에 닿아 있는 변 하나를 축으로 90도 돌아가고, 굴린 자리에서 버텨야 한다.
- 1×1 면이 바닥일 때는 그 칸이 땅이어야 한다.
- 1×3 면이 바닥일 때는 닿는 세 칸 중 양 끝이 모두 땅이거나 가운데가 땅이어야 한다.
둘 다 만족하지 못하면 상자는 구멍으로 떨어지고 더는 옮길 수 없다. 상자가 닿는 칸은 항상 지도 안에 있어야 한다.
시작 위치와 목적지가 주어질 때 상자를 목적지까지 옮기는 최소 굴리기 횟수를 구하여라. 목적지에서 상자가 서 있을 필요는 없다. 상자가 닿는 칸 가운데 하나가 목적지이기만 하면 된다.