아파트
시간 제한1초메모리 제한1024 MB
손 2N개로 쌓은 아파트를 T번의 게임 동안 b번 회전시키며 각 게임에서 맨 아래에 남는 손의 참가자 번호를 구한다.
문제

아~파트 아파트! 아~파트 아파트! 몇 층에 살까?
연말을 맞아 아주대학교 소프트웨어학과 알고리즘 동아리 ANSI는 다 같이 모여 아파트 게임을 회 진행하고자 한다. ANSI는 진행자 교선이와 명의 참가자로 구성되어 있다. 각 참가자에게는 번부터 번까지 번호가 부여되어 있고, 참가자는 각자의 두 손을 층층이 쌓아 올려 손 아파트를 만들어 준비한다. 밑에서부터 번째 위치에 번호가 인 참가자의 손이 자리한다. 번째 아파트 게임의 진행 과정은 다음과 같다.
- 교선이가 한 양의 정수 를 부른다.
- 참가자들이 부터 까지 수를 센다. 수를 셀 때마다 손 아파트의 맨 아래에 있는 손을 빼서 손 아파트의 맨 위에 올린다.
- 참가자들이 교선이가 부른 수 를 셀 때 맨 아래에 손을 둔 참가자가 패배한다. 패배한 참가자는 손을 빼지 않고 그대로 둔다.
예를 들어, 손이 개 있을 때 를 부르면 아래에서 번째에 손을 둔 참가자가 패배한다. 교선이는 손 아파트를 이루는 손의 총 개수보다 큰 수를 부를 수 있음에 유의하자.
ANSI는 게임의 연속성을 위해, 다음 아파트 게임을 진행할 때 이전 게임이 종료된 상태에서 손 아파트의 위치를 바꾸지 않고 새로운 게임을 시작한다. 번의 게임에서 가장 많이 패배하는 참가자는 벌칙을 받아야 하므로, 각 게임마다 패배하는 참가자를 알아내 보자.
입력
첫 번째 줄에 참가자의 수 이 주어진다.
두 번째 줄에 아파트 게임의 횟수 가 주어진다.
세 번째 줄에 손 아파트에서 손의 위치에 대한 개의 수가 공백으로 구분되어 주어진다. 는 밑에서 번째에 손을 둔 참가자의 번호이다. 모든 참가자의 번호는 각각 두 번씩 등장한다.
네 번째 줄에 교선이가 부르는 개의 양의 정수 가 공백으로 구분되어 주어진다. 는 번째 게임에서 교선이가 부른 수를 의미한다.
출력
첫 번째 게임부터 패배하는 참가자의 번호를 순서대로 공백으로 구분하여 출력한다.