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

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

원상 복구 (large)

시간 제한3초메모리 제한1024 MB

요약
K번 섞은 뒤의 카드 배열과 섞기 순열 D가 주어질 때, 섞기 전 원래 카드 배열을 구한다.
난이도

보통10점 중 7점

유형
수학, 시뮬레이션, 배열, 조합론
정답자
아직 제출이 없습니다

문제

P1,P2,⋯ ,PNP_1, P_2, \cdots, P_N의 수가 적혀 있는 NN개의 카드가 있다.

1부터 N까지 수가 하나씩 존재하는 수열 D1,D2,⋯ ,Di,⋯ ,DND_1, D_2, \cdots, D_i, \cdots, D_N이 있다. 이때 각 ii에 대해 DiD_i번째 카드를 ii번째로 가져오는 작업을 셔플이라고 부른다.

예를 들어, P1,P2,⋯ ,PNP_1, P_2, \cdots, P_N이 1, 4, 5, 3, 2이고, D1,D2,⋯ ,DND_1, D_2, \cdots, D_N가 4, 3, 1, 2, 5라고 가정해보자. 이 카드를 한번 셔플하면 3, 5, 1, 4, 2가 된다. 아래 그림으로 표현을 해보았다. 아래 SS는 카드를 한 번 셔플한 후를 의미한다.

위 방식을 그대로 KK번 셔플한 카드의 정보와 DD의 정보를 알고 있다고 할 때, 원래 카드는 어떤 배치를 이루고 있었는지 구해보자.

입력

첫번째 줄에는 카드의 개수 NN과 카드를 섞은 횟수인 KK가 공백으로 구분되어 주어진다.

두번째 줄에는 KK번 카드를 섞은 후 카드의 배치를 의미하는 SiS_i가 공백으로 구분되어 총 NN개 주어진다.

세번째 줄에는 총 NN개의 DiD_i이 공백으로 구분되어 주어진다.

출력

원래 카드의 배치인 P1P_1부터 PNP_N까지의 값들을 공백으로 구분해서 출력한다.

제한

  • 1≤N≤1061 \le N \le 10^6
  • 1≤K≤10151 \le K \le 10^{15}
  • 1≤Di≤N1 \le D_i \le N
  • 1≤Pi,Si≤1061 \le P_i, S_i \le 10^6
  • PiP_i는 정수

예제2

  1. 예제 1

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

    입력
    4 1
    4 3 2 1
    4 3 2 1
    
    예상 출력
    1 2 3 4