from collections import deque
gear = {}
for i in range(1, 5):
gear[i] = deque((map(int, input())))
k=int(input())
how=[list(map(int,input().split())) for _ in range(k)]
# index2, 6 인접한 톱니
def check_left(now_gear,dir):
# 현재 톱니가 첫번째보다 작다 or 현재톱니의 2번위치와 오른쪽 톱니의 6번위치의 값이 같다
if now_gear<1 or gear[now_gear][2]==gear[now_gear+1][6]:
return # 회전할 수 없으므로 종료
check_left(now_gear-1, -dir) # 인접한 톱니의 인접한 톱니까지 확인
gear[now_gear].rotate(dir) # 현재 톱니 회전
def check_right(now_gear,dir):
# 현재 톱니가 네번째보다 크다 or 현재톱니의 6번위치와 왼쪽 톱니의 2번위치의 값이 같다
if now_gear>4 or gear[now_gear][6]==gear[now_gear-1][2]:
return # 회전할 수 없으므로 종료
check_right(now_gear+1, -dir) # 인접한 톱니의 인접한 톱니까지 확인
gear[now_gear].rotate(dir) # 현재 톱니 회전
for i in range(k):
# 인접 톱니를 회전시킬 수 있는지 확인 후 회전
check_left(how[i][0]-1,-how[i][1]) # (왼쪽 톱니,반대방향으로 회전)
check_right(how[i][0]+1,-how[i][1]) # (오른쪽 톱니,반대방향으로 회전)
gear[how[i][0]].rotate(how[i][1]) # 톱니를 회전 시킨다
# 회전하기 전의 n,s극으로 인접 톱니의 회전 여부를 결정하기 때문에 인접 톱니를 먼저 확인하고 회전한다
result=0
for i in range(1,5):
if gear[i][0]==0:
result+=0
else:
result=result+(2**(i-1))
print(result)