카드
시간 제한1초메모리 제한128 MB
N장의 카드를 S번 이중 섞기한 뒤의 최종 순서와 S가 주어질 때, 섞기 전의 처음 순서를 복원한다.
문제
앨리스와 밥은 부터 까지의 서로 다른 번호가 붙은 장의 카드(어떤 두 카드도 같은 번호를 갖지 않는다)와 셔플 기계를 가지고 있다. 여기서 은 홀수이다.
셔플 기계는 임의의 순서로 놓인 카드 묶음을 받아 다음과 같은 이중 셔플(double shuffle) 연산을 수행한다. 모든 위치 ()에 대해, 위치 에 놓인 카드가 이고 위치 에 놓인 카드가 라면, 이중 셔플이 끝난 뒤 위치 에는 카드 가 놓인다.
앨리스와 밥은 게임을 한다. 먼저 앨리스는 부터 까지의 수를 임의의 순서로 나열하여 을 만든다. 그런 다음, 모든 에 대해 위치 에 카드 을 놓고, 위치 에는 카드 을 놓아 카드를 배치한다.
이렇게 하면 카드는 어떤 순서 으로 놓이며, 여기서 는 번째 위치에 있는 카드이다.
이제 앨리스는 위의 셔플 기계로 이중 셔플을 번 연속으로 수행한다. 그 결과 카드는 최종 순서 으로 배열되고, 앨리스는 이 배열과 함께 값을 밥에게 알려준다. 밥이 할 일은 앨리스가 카드를 셔플 기계에 넣기 직전에 놓았던 원래 순서 을 알아내는 것이다.
입력
첫째 줄에 공백 하나로 구분된 두 정수가 주어진다. 카드의 개수인 홀수 ()과 이중 셔플 연산의 횟수 ()이다.
이어지는 개의 줄은 모든 이중 셔플이 끝난 뒤의 카드 순서를 나타낸다. 각 ()에 대해 번째 줄에는 모든 이중 셔플 후 위치 에 있는 카드 가 주어진다.
출력
카드가 셔플 기계에 들어가기 직전의 순서를 나타내는 개의 줄을 출력한다.
각 ()에 대해, 번째 줄에는 이중 셔플을 수행하기 전 위치 에 있던 카드 를 출력한다.