도넛 드론
시간 제한8초메모리 제한512 MB
토러스 격자에서 드론이 매 단계마다 오른쪽 세 칸 중 가장 높은 칸으로 이동할 때, 최대 10^9번의 이동 질의와 고도 변경을 처리하며 드론의 최종 위치를 구한다.
문제
도넛 모양 행성을 탐사하는 드론의 시뮬레이션을 만든다. 드론이 움직이는 곳은 토러스 격자, 즉 가로와 세로 양쪽으로 순환하며 이어지는 직사각형 격자다. 격자의 행은 위에서 아래로 번부터 번까지, 열은 왼쪽에서 오른쪽으로 번부터 번까지 번호를 매긴다. 각 칸에는 고도가 하나씩 있고, 고도는 양의 정수다.

드론은 처음에 행 열 칸에 있다. 한 번 이동할 때마다 드론은 세 칸을 본다. 바로 오른쪽 칸, 오른쪽 아래 대각선 칸, 오른쪽 위 대각선 칸이다. 행 번호와 열 번호는 순환하므로 행 아래가 행이고 열 오른쪽이 열이다. 드론은 이 세 칸 중 고도가 가장 높은 칸으로 날아간다.
시뮬레이션 중에는 두 종류의 사건이 일어난다.
move k: 드론이 번 이동한다.change a b e: 행 열 칸의 고도가 로 바뀐다.
각 move 사건이 끝난 직후 드론의 위치를 구한다.
어느 시점에서든 같은 열에서 순환하며 연속한 세 칸의 고도는 서로 모두 다르다. 따라서 드론이 날아갈 칸은 언제나 하나로 정해진다.

입력
첫 줄에 격자의 행 개수 과 열 개수 가 주어진다 (). 이어지는 개 줄 중 번째 줄에는 행 칸의 처음 고도 가 주어진다 ().
다음 줄에 사건의 개수 이 주어진다 (). 이어지는 개 줄 중 번째 줄에는 번째 사건이 주어진다. 사건의 형태는 move k () 또는 change a b e (, , )다.
출력
입력에 있는 move 사건마다 한 줄씩, 사건이 나온 순서대로 출력한다. 번째 move 사건에 해당하는 줄에는 그 사건이 끝난 직후 드론이 있는 칸의 행 번호와 열 번호를 공백 하나로 구분해 출력한다.