# 바둑알 십(+)자 뒤집기
# 모든 가로줄 반대로 (1->0 / 0->1) ----> 그 다음 모든 세로줄 돌 반대로
# 고른 위치를 제외한 가로줄과 세로줄의 색이 모두 반대로 바뀜
# 바둑알이 깔려 있는 상황이 19 * 19 크기의 정수값으로 입력된다.
# 십자 뒤집기 횟수(n)가 입력된다.
# 십자 뒤집기 좌표가 횟수(n) 만큼 입력된다. 단, n은 10이하의 자연수이다.
d = [list(map(int, input().split())) for _ in range(19)]
n = int(input())
for _ in range(n):
x, y = map(int, input().split())
# 좌표 (1,1) 은 배열 인덱스로 (0,0)
x -= 1
y -= 1
for i in range(19):
if i != x:
d[i][y] = int(not d[i][y])
if i != y:
d[x][i] = int(not d[x][i])
for row in d:
print(' '.join(map(str, row)))
행렬 입력받는 것부터 고난과 역경...
오랜만에 파이썬 보니까 다 까먹어서 예전에 작성한 코드 다시 읽고 이해해야했음 ㅠ
이것도 GPT와 열심히 상의하고.. 유저들이 남긴 힌트 주워서 1시간 걸려서 작성한 것..
어렵다 어려웡,...