로테이트

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

상근이와 정인이가 '로테이트'라는 새로운 게임을 만들었다.

먼저 정인이는 길이가 $N$인 수열을 하나 생각한다. 그런 다음 이 수열을 각각 $K$개의 수가 들어가는 섹션으로 나눈다($K$는 $N$의 약수이다). 첫 번째 섹션에는 수열의 처음 $K$개의 수가 들어가고, 두 번째 섹션에는 그 다음 $K$개의 수가 들어간다. 나머지 섹션도 같은 방식으로 채운다.

정인이는 이 수열에 다음 두 가지 연산을 적용할 수 있다.

  1. 각 섹션을 왼쪽 또는 오른쪽으로 $X$칸만큼 회전시킨다.
  2. 수열 전체를 왼쪽 또는 오른쪽으로 $X$칸만큼 회전시킨다.

2번 연산은 수열 전체를 회전시키므로, 각 섹션에 들어 있는 수가 바뀔 수도 있다.

정인이는 자신이 생각한 수열에 위 연산들을 순서대로 적용한 뒤, 최종 수열을 상근이에게 보여 준다. 최종 수열과 정인이가 적용한 연산이 순서대로 주어졌을 때, 정인이가 처음에 생각한 수열을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 수열의 길이 $N$, 섹션의 크기 $K$, 정인이가 적용한 연산의 수 $Q$가 주어진다 ($1 \le N, K, Q \le 100{,}000$, $K$는 $N$의 약수).

다음 $Q$개의 줄에는 정인이가 적용한 연산이 순서대로 주어진다. 각 줄에는 연산의 종류를 나타내는 정수 $A$ ($1 \le A \le 2$)와 회전량을 나타내는 정수 $X$ ($-100{,}000 \le X \le 100{,}000$)가 주어진다. $X$가 음수이면 왼쪽 방향으로, 양수이면 오른쪽 방향으로 회전한다.

마지막 줄에는 모든 연산을 적용한 뒤의 최종 수열이 공백으로 구분되어 주어진다.

출력

첫째 줄에 정인이가 처음에 생각한 수열을 공백으로 구분하여 출력한다.