随机化游戏时间!
题号:NC278058
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

\,\,\,\,\,\,\,\,\,注:本题和 \sf easy 版本的区别在于排列未知,输出全部可能的数字。
\,\,\,\,\,\,\,\,\,\,小 \mathcal L 有一个 1\sim n 的排列,她从中选择了一个数字作为自己的幸运数。
\,\,\,\,\,\,\,\,\,\,小 \mathcal H 每次会询问小 \mathcal L 一个区间 [l,r] ,随后小 \mathcal L 会告诉他这个区间里有多少个数小于等于她的幸运数。
\,\,\,\,\,\,\,\,\,\,直到 m 次询问全部完成,直接从小到大输出全部可能的幸运数。保证数据有解。

\,\,\,\,\,\,\,\,\,\,长度为 n 的排列是由 1 \sim n 这 n 个整数、按任意顺序组成的数组,每个整数恰好出现一次。

输入描述:

\,\,\,\,\,\,\,\,\,\,每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\le T\le 200\right) 代表数据组数,每组测试数据描述如下:

\,\,\,\,\,\,\,\,\,\,第一行输入两个整数 n,m\left( 1\le n,m \le 10^5\right) 代表小 \mathcal L 的排列长度和最多询问次数。
\,\,\,\,\,\,\,\,\,\,随后 m 行,每行输入三个整数 l,r,k\left(1\le l \le r \le n;\ 0 \le k \le r - l + 1 \right) 代表询问区间、区间内小于等于幸运数的数字个数。

\,\,\,\,\,\,\,\,\,\,除此之外,保证所有的 n 之和不超过 2\times 10^5 ,所有的 m 之和不超过 2\times 10^5 
\,\,\,\,\,\,\,\,\,\,本题数据随机生成,但保证存在解。

输出描述:

\,\,\,\,\,\,\,\,\,\,对于每一组测试数据,在一行上从小到大输出若干个整数,代表全部符合条件的幸运数。
示例1

输入

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

输出

复制
2 3 4
4
2

说明

\,\,\,\,\,\,\,\,\,对于第一组测试数据,
\,\,\,\,\,\,\,\,\,\,\,\,\,\,\bullet\,[5,6] 区间中有两个数字小于等于幸运数,所以幸运数不可能是 1
\,\,\,\,\,\,\,\,\,\,\,\,\,\,\bullet\,[1,2] 区间中没有数字小于等幸运数,所以幸运数不可能是 5 或者 6
\,\,\,\,\,\,\,\,\,综上,幸运数只有可能是 23 或者 4

\,\,\,\,\,\,\,\,\,对于第二组测试数据,
\,\,\,\,\,\,\,\,\,\,\,\,\,\,\bullet\,[5,6] 有一个数字大于幸运数,所以幸运数不可能是 6 ;
\,\,\,\,\,\,\,\,\,\,\,\,\,\,\bullet\,[1,4] 区间中有三个数字小于等于幸运数,联系上一步还有一个数字小于等于幸运数,可以知道幸运数 \ge 4 ;
\,\,\,\,\,\,\,\,\,综上,幸运数只有可能是 4 。