아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

카드

시간 제한1초메모리 제한128 MB

요약
N장의 카드를 S번 이중 섞기한 뒤의 최종 순서와 S가 주어질 때, 섞기 전의 처음 순서를 복원한다.
난이도

보통10점 중 6점

유형
수학, 시뮬레이션, 구현, 정수론
정답자
아직 제출이 없습니다

문제

앨리스와 밥은 11부터 NN까지의 서로 다른 번호가 붙은 NN장의 카드(어떤 두 카드도 같은 번호를 갖지 않는다)와 셔플 기계를 가지고 있다. 여기서 NN은 홀수이다.

셔플 기계는 임의의 순서로 놓인 카드 묶음을 받아 다음과 같은 이중 셔플(double shuffle) 연산을 수행한다. 모든 위치 ii (1≤i≤N1 \le i \le N)에 대해, 위치 ii에 놓인 카드가 jj이고 위치 jj에 놓인 카드가 kk라면, 이중 셔플이 끝난 뒤 위치 ii에는 카드 kk가 놓인다.

앨리스와 밥은 게임을 한다. 먼저 앨리스는 11부터 NN까지의 수를 임의의 순서로 나열하여 a1,a2,…,aNa_1, a_2, \ldots, a_N을 만든다. 그런 다음, 모든 1≤i≤N−11 \le i \le N-1에 대해 위치 aia_i에 카드 ai+1a_{i+1}을 놓고, 위치 aNa_N에는 카드 a1a_1을 놓아 카드를 배치한다.

이렇게 하면 카드는 어떤 순서 x1,x2,…,xNx_1, x_2, \ldots, x_N으로 놓이며, 여기서 xix_i는 ii번째 위치에 있는 카드이다.

이제 앨리스는 위의 셔플 기계로 이중 셔플을 SS번 연속으로 수행한다. 그 결과 카드는 최종 순서 p1,p2,…,pNp_1, p_2, \ldots, p_N으로 배열되고, 앨리스는 이 배열과 함께 SS 값을 밥에게 알려준다. 밥이 할 일은 앨리스가 카드를 셔플 기계에 넣기 직전에 놓았던 원래 순서 x1,x2,…,xNx_1, x_2, \ldots, x_N을 알아내는 것이다.

입력

첫째 줄에 공백 하나로 구분된 두 정수가 주어진다. 카드의 개수인 홀수 NN (1≤N≤10001 \le N \le 1000)과 이중 셔플 연산의 횟수 SS (1≤S≤10001 \le S \le 1000)이다.

이어지는 NN개의 줄은 모든 이중 셔플이 끝난 뒤의 카드 순서를 나타낸다. 각 ii (1≤i≤N1 \le i \le N)에 대해 (i+1)(i+1)번째 줄에는 모든 이중 셔플 후 위치 ii에 있는 카드 pip_i가 주어진다.

출력

카드가 셔플 기계에 들어가기 직전의 순서를 나타내는 NN개의 줄을 출력한다.

각 ii (1≤i≤N1 \le i \le N)에 대해, ii번째 줄에는 이중 셔플을 수행하기 전 위치 ii에 있던 카드 xix_i를 출력한다.

예제2

  1. 예제 1

    입력
    5 2
    4
    1
    5
    3
    2
    
    예상 출력
    2
    5
    4
    1
    3
    
  2. 예제 2

    입력
    7 4
    6
    3
    1
    2
    4
    7
    5
    
    예상 출력
    4
    7
    5
    6
    1
    2
    3