#abc279e. [abc279_e]Cheating Amidakuji

[abc279_e]Cheating Amidakuji

题目描述

给定一个长度为MM的序列A=(A1,A2,,AM)A=(A_1,A_2,\dots,A_M),其中的元素都是介于11N1N-1之间的整数(包括11N1N-1)。对于所有满足i=1,2,,Mi=1, 2, \dots, M的情况,回答以下问题:

  • 给定一个序列B=(B1,B2,,BN)B=(B_1,B_2,\dots,B_N)。初始时,我们有Bj=jB_j=j对于所有jj。按照以下顺序执行操作k=1,2,,i1,i+1,,Mk=1, 2, \dots, i-1, i+1, \dots, M(换言之,对于除了ii之外的所有整数kk按升序进行操作):
    • 交换BAkB_{A_k}BAk+1B_{A_k+1}的值。
  • 在所有操作完成后,令SiS_i为满足Bj=1B_j=1jj的值。找到SiS_i

约束条件

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • 1M2×1051 \leq M \leq 2 \times 10^5
  • 1AiN1 (1iM)1 \leq A_i \leq N-1\ (1 \leq i \leq M)
  • 输入中的所有值都是整数。

输入和输出

输入通过标准输入给出,格式如下:

NN MM A1A_1 A2A_2 \dots AMA_M

输出MM行。第ii行(1iM1 \leq i \leq M)应包含一个整数值SiS_i

样例输入 1

5 4
1 2 3 2

样例输出 1

1
3
2
4

i=2i = 2时,操作会将BB更改如下:

  • 初始时,B=(1,2,3,4,5)B = (1,2,3,4,5)
  • 执行k=1k=1的操作。交换B1B_1B2B_2的值,得到B=(2,1,3,4,5)B = (2,1,3,4,5)
  • 执行k=3k=3的操作。交换B3B_3B4B_4的值,得到B=(2,1,4,3,5)B = (2,1,4,3,5)
  • 执行k=4k=4的操作。交换B2B_2B3B_3的值,得到B=(2,4,1,3,5)B = (2,4,1,3,5)

在完成所有操作后,我们有B3=1B_3=1,因此S2=3S_2 = 3

类似地,我们有以下结果。

  • i=1i=1时:按顺序执行k=2,3,4k=2,3,4的操作,得到B=(1,4,3,2,5)B=(1,4,3,2,5),因此S1=1S_1=1
  • i=3i=3时:按顺序执行k=1,2,4k=1,2,4的操作,得到B=(2,1,3,4,5)B=(2,1,3,4,5),因此S3=2S_3=2
  • i=4i=4时:按顺序执行k=1,2,3k=1,2,3的操作,得到B=(2,3,4,1,5)B=(2,3,4,1,5),因此S4=4S_4=4

样例输入 2

3 3
2 2 2

样例输出 2

1
1
1

样例输入 3

10 10
1 1 1 9 4 4 2 1 3 3

样例输出 3

2
2
2
3
3
3
1
3
4
4