交换统计

题目描述

Y 同学有一个长度为 nn 的序列 a1,a2,,ana_1,a_2,\dots,a_n

他只会一种非常原始的排序方式:每次选择两个下标 x,yx,y,满足 1x<yn1 \le x < y \le n,然后交换 axa_xaya_y

现在一共会进行 qq 次交换操作。对于每次交换操作完成后的序列,你需要统计满足

ai>ai+1a_i > a_{i+1}

的下标 ii 的个数,其中 1i<n1 \le i < n

换句话说,你需要在每次交换后输出当前序列中相邻逆序对的数量。

输入格式

第一行包含两个整数 n,qn,q,分别表示序列长度和交换次数。

第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\dots,a_n,表示初始序列。

接下来 qq 行,每行包含两个整数 x,yx,y,表示交换位置 xx 和位置 yy 上的元素。

输出格式

输出共 qq 行。

ii 行输出第 ii 次交换完成后,满足 aj>aj+1a_j > a_{j+1} 的下标 jj 的个数。

样例输入 #1

5 3
2 4 3 5 1
1 2
3 5
2 4

样例输出 #1

2
3
1

数据范围与约定

对于 100%100\% 的数据,保证 1n,q2×1051 \le n,q \le 2\times 10^51ain1 \le a_i \le n1x<yn1 \le x < y \le n

测试点编号 n,qn,q \le 特殊性质
121 \sim 2 500500
343 \sim 4 50005000
565 \sim 6 2×1052\times 10^5 特殊性质 A
787 \sim 8 特殊性质 B
9129 \sim 12
131613 \sim 16
172017 \sim 20
  • 特殊性质 A:所有交换操作均满足 y=x+1y=x+1
  • 特殊性质 B:初始序列单调不降。