小波的排序
题号:NC212562
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

众所周知小波很擅长排序。有一天小波想到了一个很有趣的排序题,并且小波很快就做出来了,但是他不告诉你做法,所以你需要自己做出这道题。这道题是这样的:已知一个序列A长度为n,序列第i个元素为,有m个操作每次操作选定区间[l,r]按照升序或者降序排序。询问一开始拍第k的元素经过m次排序后排在第几位。

输入描述:

第一行一个数表示一共T组数据。

每组数据第一行三个数表示序列长度,操作个数和询问的位置。

接下来一行n个数,表示序列。

接下来m行,每行三个数opr,l,r表示操作。

当opr=0时,对区间[l,r]升序排序的操作。

当opr=1时,对区间[l,r]降序排序的操作。

输出描述:

T行,表示答案。
示例1

输入

复制
2
5 2 1
1 2 3 4 5
1 1 3
0 3 5
5 3 3
2 4 3 1 5
0 1 3
0 3 4
1 1 3

输出

复制
3
1

说明

对于样例第一组数据:

第一次排序后得到的序列为:[3,2,\underline{1},4,5]

第二次排序后得到的序列为:[3,2,\underline{1},4,5]

对于样例第二组数据:

第一次排序后得到的序列为:[2,\underline{3},4,1,5]

第二次排序后得到的序列为:[2,\underline{3},1,4,5]

第三次排序后得到的序列为:[\underline{3},2,1,4,5]