마법의 도넛 게임
시간 제한2초메모리 제한512 MB
원형 보드에서 회전, 뒤집기, 구간 더하기 명령을 수행하고, 기준 칸부터 X칸의 합을 구할 때마다 그 값을 10^9+7로 나눈 나머지로 출력합니다.
문제
Albert는 같은 크기의 개 칸으로 이루어진 도넛 모양 게임 보드로 마법의 도넛 게임을 즐긴다.
먼저 칸 하나를 "기준 칸"으로 정해 12시 방향에 놓는다. 그다음 시계 방향 순서대로 각 칸에 정수 을 적는다. 아래 그림은 , 인 경우이며, 화살표가 기준 칸을 가리킨다.

이후 지시 사항이 적힌 카드 장을 순서대로 뽑아 카드의 지시를 수행한다. 각 카드에는 정수 3개가 적혀 있으며, 번째 카드의 정수를 차례로 라 한다. 지시 사항은 다섯 종류이고, 첫 번째 정수 가 지시 내용을 정한다 ().
- : 보드를 반시계 방향으로 칸 돌린다. 는 항상 이다.
- : 보드를 시계 방향으로 칸 돌린다. 는 항상 이다.
- : 12시와 6시를 잇는 축을 기준으로 보드를 뒤집는다. 와 는 항상 이다.
- : 기준 칸부터 시계 방향으로 총 개 칸에 적힌 값을 각각 씩 증가시킨다.
- : 기준 칸부터 시계 방향으로 총 개 칸에 적힌 값을 모두 더해 메모지에 기록한다. 메모지에 번째로 적은 값을 라 한다.
예를 들어 , , , 인 경우의 진행은 아래 표와 같다.
5번 종류의 지시 카드는 4장이므로 이 된다.
입력
첫 줄에 테스트 케이스의 수 가 주어진다.
각 테스트 케이스의 첫 줄에는 과 이 공백으로 구분되어 주어진다. 둘째 줄에는 배열 의 원소 개가, 셋째 줄에는 배열 의 원소 개가, 넷째 줄에는 배열 의 원소 개가, 다섯째 줄에는 배열 의 원소 개가 공백으로 구분되어 주어진다.
출력
각 테스트 케이스의 정답인 배열 의 원소를 공백으로 구분하여 한 줄에 출력한다. 값이 매우 커질 수 있으므로 의 각 원소를 로 나눈 나머지를 출력한다.
제한
- 인 각 에 대하여:
- 인 각 에 대하여: . 이면 이고, 이면 이다. 이면 이고, 이면 이다.
- 인 각 에 대하여:
- 배열 의 원소 중 적어도 하나는 이다. 따라서 출력해야 하는 배열 가 비어 있는 입력은 주어지지 않는다.




