#U2122FS3. Email Filing

Email Filing

Farmer John 在整理收件箱方面已经落后了。他的屏幕排列方式是,屏幕左侧有一个垂直的文件夹列表,屏幕右侧有一个垂直的电子邮件列表。共有 M 个文件夹,编号为 1…M(1≤M≤104^4)。他的收件箱当前包含 N 封编号为 1…N(1≤N≤105^5)的电子邮件;第 i 封电子邮件需要归档到文件夹 fi_i(1≤fi_i≤M)。FJ 的屏幕有些小,所以他同时只能查看 K(1≤K≤min(N,M))个文件夹和 K 封电子邮件。最初,他的屏幕左侧显示文件夹1…K,右侧显示电子邮件 1…K。要访问其他文件夹和电子邮件,他需要滚动相应的列表。例如,如果他将文件夹列表向下滚动一个位置,他的屏幕将显示文件夹 2…K+1,然后再向下滚动一个位置将显示文件夹 3…K+2。当 FJ 将一封电子邮件拖曳至一个文件夹时,该电子邮件将从电子邮件列表中消失,并且消失的电子邮件之后的电子邮件会向上移动一个位置。例如,如果当前显示的是电子邮件 1,2,3,4,5,然后 FJ 将电子邮件 3 拖曳至其对应的文件夹中,则电子邮件列表现在将显示电子邮件 1,2,4,5,6。FJ 只可以将电子邮件拖曳至其需要归档的文件夹中。

不幸的是,FJ 的鼠标滚轮坏了,所以他只能向下滚动,不能向上滚动。他可以实现类似向上滚动的唯一情况是,他正在查看他的电子邮件列表中的最后 K 封电子邮件,并且他归档了其中的一封。在这种情况下,电子邮件列表将再继续显示尚未归档的最后 K 封电子邮件,实际上使得最上方的电子邮件向上滚动了一个位置。如果剩余少于 K 封电子邮件,则将显示所有电子邮件。

请帮助 FJ 判断是否可能归档他的所有电子邮件。

输入格式(从终端 / 标准输入读入):

输入的第一行包含 T(1≤T≤10),为当前测试用例中的子测试用例数量,所有子测试用例必须全部正确才能通过当前测试用例。以下是 T 个子测试用例。每一个子测试用例的第一行包含 M,N 和 K。第二行包含 f1_1…fN_N。输入保证所有子测试用例的 M 之和不超过 104^4,所有子测试用例的 N 之和不超过 105^5

输出格式(输出至终端 / 标准输出):

输出 T 行,每行包含 YES 或 NO,表示对于 T 个子测试用例中的每一个,FJ 是否可以成功归档他的所有电子邮件。

输入样例:

6
5 5 1
1 2 3 4 5
5 5 1
1 2 3 5 4
5 5 1
1 2 4 5 3
5 5 2
1 2 4 5 3
3 10 2
1 3 2 1 3 2 1 3 2 1
3 10 1
1 3 2 1 3 2 1 3 2 1

输出样例:

YES
YES
NO
YES
YES
NO

测试点性质:

  • 测试点 2-10 中,所有子测试用例的 M 之和不超过 103^3
  • 测试点 11-12 没有额外限制。