#1447. 添加和删除

添加和删除

题目描述

给定一个关于 (1,2,…,N)(1, 2, \dots, N) 的排列 P=(P1,P2,…,PN)P = (P_1, P_2, \dots, P_N)。

有 QQ 次操作,对于 q=1,2,…,Qq = 1, 2, \dots, Q,你需要按顺序执行以下操作:

  • 从排列 PP 中移除值为 aqa_q 的元素,并将其追加到排列 PP 的末尾。

请找出在执行完这 QQ 次操作后,排列 PP 中各个元素的值。

输入格式

第一行包含两个正整数 NN 和 QQ —— 分别表示排列的长度和操作的次数。

第二行包含 NN 个整数 P1,P2,…,PNP_1, P_2, \dots, P_N —— 表示初始排列 PP。

接下来 QQ 行,每行包含一个整数 aqa_q —— 表示第 qq 次操作所指定移除的值。

输出格式

输出一行,包含 NN 个整数,表示执行完 QQ 次操作后的排列 P1,P2,…,PNP_1, P_2, \dots, P_N,相邻两个整数之间用一个空格隔开。

样例输入 1

4 2
2 4 3 1
3
2

样例输出 1

4 1 3 2

样例输入 2

3 3
1 2 3
1
1
1

样例输出 2

2 3 1

样例输入 3

2 5
2 1
1
1
2
2
1

样例输出 3

2 1

说明

样例解释

在第一个样例中,初始时 P=(2,4,3,1)P=(2,4,3,1)。

  • 第一次操作(a1=3a_1 = 3):从 PP 中移除 33,并将其追加到末尾。操作后 P=(2,4,1,3)P=(2,4,1,3)。
  • 第二次操作(a2=2a_2 = 2):从 PP 中移除 22,并将其追加到末尾。操作后 P=(4,1,3,2)P=(4,1,3,2)。

数据范围

  • 对于所有测试点,保证 1≤N≤2×1051 \le N \le 2 \times 10^5。
  • 对于所有测试点,保证 1≤Q≤2×1051 \le Q \le 2 \times 10^5。
  • 保证给定的 PP 是一个关于 (1,2,…,N)(1, 2, \dots, N) 的排列。
  • 保证 1≤aq≤N1 \le a_q \le N。
  • 保证所有的输入数值均为整数。