Problems
지헌이는 미로를 탈출하는 로봇을 만들고 있다.
그런데 벽이나 장애물을 만났을 때만 주어진 방향 순서대로 바꾸어 갈 수 있는지를 테스트 하려고 한다.
<처리조건> 1. 출발은 항상 왼쪽 위에서 시작한다. 2. 벽이나 장애물을 만났을 때만 방향을 바꿀 수 있다. (벽은 맵의 바깥을 말한다.) 3. 방향을 바꿀때는 주어진 순서대로 바꾼다. 4. 한번 지나간 길은 다시 지나갈 수 없다. ( 다음 이동할 위치가 한번 지나간 길이라면 로봇은 멈춘다.) 5. 맵의 1칸 이동을 이동거리 1로 한다.
5x5맵의 정보가 주어지고 방향의 순서가 아래, 오른쪽, 위. 왼쪽 일 때 다음과 같이 움직인다.
1. 아래(1)방향으로 움직이다 장애물을 만난다. => 방향을 오른쪽(4)으로 바꾼다.
2. 진행방향으로 움직이다 벽을 만난다. => 방향을 위쪽(3)으로 바꾼다.
3. 진행방향으로 움직이다 벽을 만난다. => 방향을 왼쪽(2)로 바꾼다.
4. 진행방향으로 움직이다 벽을 만난다. => 방향을 아래쪽(1)로 바꾼다.
5. 진행방향으로 움직이다 지나간 길을 만난다. => 멈춘다.

미로의 맵과 방향의 순서가 주어질 때 최대로 이동할 수 있는 이동 거리를 구하는 프로그램을 작성하시오.
Input
첫 줄에 맵의 가로, 세로 크기인 N(3≤N≤10)이 들어온다. 그 다음 줄부터 N개의 줄에 각각 N개씩 0과 1이 공백 없이 들어온다. (0: 길, 1: 장애물) 마지막 줄에 방향을 바꾸는 명령 4개가 들어온다. 방향은 1:아래, 2:왼쪽, 3:위, 4:오른쪽 이다. 로봇은 벽이나 장애물을 만나면 주어진 순서에 따라 방향을 바꾸며 갈 수 있는 곳을 찾아 진행한다.
Output
출발위치에서 출발하여 방향 순서대로 이동할 경우 갈수 있는 한 최대로 이동하였을 때 이동한 거리를 출력한다.
Example
5
00001
01000
00000
00000
10000
1 4 3 2
12