

주사위를 동, 서, 남, 북으로 굴릴 때 각 위치의 숫자들이 어디로 이동하는지를 잘 구현해야 함
gets = list(map(int, input().split()))
n = gets[0]
m = gets[1]
x = gets[2] # 행
y = gets[3] # 열
k = gets[4]
maps = []
for i in range(0, n):
line = list(map(int, input().split()))
maps.append(line)
act_list = list(map(int, input().split()))
dice_nums = [0] * 6
# --------- 주사위 굴리기 함수
def dice(move, dice_nums):
# 0: back, 1: top, 2: front, 3: bottom, 4: left, 5: right
if move == 1: # 동
temp = dice_nums[1]
dice_nums[1] = dice_nums[4]
dice_nums[4] = dice_nums[3]
dice_nums[3] = dice_nums[5]
dice_nums[5] = temp
elif move == 2: # 서
temp = dice_nums[1]
dice_nums[1] = dice_nums[5]
dice_nums[5] = dice_nums[3]
dice_nums[3] = dice_nums[4]
dice_nums[4] = temp
elif move == 3: # 남
temp = dice_nums[1]
dice_nums[1] = dice_nums[0]
dice_nums[0] = dice_nums[3]
dice_nums[3] = dice_nums[2]
dice_nums[2] = temp
elif move == 4: # 북
temp = dice_nums[1]
dice_nums[1] = dice_nums[2]
dice_nums[2] = dice_nums[3]
dice_nums[3] = dice_nums[0]
dice_nums[0] = temp
return dice_nums
# -----------
# 전체 명령 실행하기
for i in range(0, len(act_list)):
if act_list[i] == 1 and y + 1 < m: # 동으로 이동
y = y + 1
elif act_list[i] == 2 and y - 1 >= 0: # 서로 이동
y = y - 1
elif act_list[i] == 3 and x - 1 >= 0: # 북 이동
x = x - 1
elif act_list[i] == 4 and x + 1 < n: # 남 이동
x = x + 1
else: # 지도 밖이라 이동 불가하다면
continue
# 이동한 좌표로 주사위 굴리기
dice_nums = dice(act_list[i], dice_nums)
# ---------- 지도 수정 혹은 다이스 번호 수정
# 이동한 지도에 0이 써있으면 주사위 밑이 복사됨
if maps[x][y] == 0:
maps[x][y] = dice_nums[3]
# 이동한 지도가 0이 아니면 써잇던 숫자가 주사위 바닥으로 복사되고 지도는 0이 됨
elif maps[x][y] != 0:
dice_nums[3] = maps[x][y]
maps[x][y] = 0
# 주사위가 이동했을 때마다 주사위 top에 쓰여있는 값을 출력
print(dice_nums[1])