두 사람 바자(Bazza)와 샤자(Shazza)가 다음과 같은 게임을 한다. 게임판은 R개의 행과 C개의 열로 이루어진 격자이다. 행에는 위에서부터 0,1,…,R−1의 번호가, 열에는 왼쪽부터 0,1,…,C−1의 번호가 매겨져 있다. (P,Q)는 행 P, 열 Q에 있는 칸을 뜻한다. 각 칸에는 음이 아닌 정수가 하나씩 적혀 있으며, 게임을 시작할 때 모든 칸의 값은 0이다.
게임이 진행되는 동안 바자는 다음 두 가지 작업 중 하나를 할 수 있다.
바자는 이 작업을 최대 NU+NQ번(값을 NU번 갱신하고 NQ번 질의) 수행한 뒤 게임을 그만둔다. 각 질의에 대한 최대공약수를 순서대로 구하는 것이 목표이다.
예를 들어 R=2, C=3이고 바자가 다음 순서로 값을 갱신했다고 하자.

이때 격자는 위 그림과 같다. 이어서 바자가 다음 두 직사각형의 최대공약수를 질의한다.
다시 바자가 다음과 같이 값을 갱신한다.

바뀐 격자는 위 그림과 같다. 바자가 같은 두 직사각형을 다시 질의한다.
여기까지 바자는 값을 NU=5번 갱신하고 NQ=4번 질의했다.
첫째 줄에 행의 개수 R, 열의 개수 C, 작업의 개수 N이 공백으로 구분되어 주어진다. (1≤R,C≤109)
다음 N개의 줄에는 작업이 일어난 순서대로 한 줄에 하나씩 주어진다. 갱신 작업은 최대 NU≤22,000번, 질의 작업은 최대 NQ≤250,000번 주어진다.
1 P Q K 꼴이며, 칸 (P,Q)의 값을 K로 바꾼다. (0≤P≤R−1, 0≤Q≤C−1, 0≤K≤1018)2 P Q U V 꼴이며, 두 꼭짓점 (P,Q)와 (U,V)를 모퉁이로 하는 직사각형(테두리 포함) 안에 있는 모든 값의 최대공약수를 구한다. (0≤P≤U≤R−1, 0≤Q≤V≤C−1)직사각형 안의 모든 값이 0이면 최대공약수는 0으로 정의한다.
질의 작업이 주어질 때마다, 해당 직사각형 안에 있는 모든 값의 최대공약수를 한 줄에 하나씩 순서대로 출력한다.