编程题
### 问题描述
小齐的屏幕上有一个文件夹列表和一个邮件列表。文件夹列表垂直排列在屏幕的左侧,邮件列表垂直排列在屏幕的右侧。屏幕上总共有 $M$ 个文件夹,编号为 $1\ldots M$。小齐的收件箱中有 $N$ 封邮件,编号为 $1\ldots N$,第 $i$ 封邮件需要整理到文件夹 $f_i$ 中。
由于小齐的屏幕较小,一次只能查看 $K$ 个文件夹和 $K$ 封邮件($1 \leq K \leq \min(N, M)$)。初始时,屏幕上显示的是文件夹列表的前 $K$ 个文件夹和邮件列表的前 $K$ 封邮件。为了查看其他文件夹和邮件,小齐需要在相应的列表中滚动。如果她在邮件列表的末尾选择一个邮件进行整理,那么邮件列表将再次显示未整理的最后 $K$ 封邮件,这等效于将顶部的邮件向上滚动一封。如果剩余邮件不足 $K$ 封,那么所有未整理的邮件都将显示出来。
请帮助小齐确定是否可能将所有邮件整理完毕。
### 输入格式
第一行包含一个整数 $T$,表示子问题的数量,所有子问题必须被正确解决才能解决整个问题。
接下来的 $T$ 行,每行包含三个整数 $M$、$N$ 和 $K$,表示文件夹总数,邮件总数以及一次显示的文件夹和邮件数量。
每个子问题的下一行包含 $N$ 个整数 $f_1, f_2, \ldots, f_N$,表示每封邮件应该整理到的文件夹。
### 输出格式
输出 $T$ 行,每行包含一个单词,为对应子问题的解,如果可能将所有邮件整理完毕,则为 $YES$,否则为 $NO$。
### 样例输入
```
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
```
### 评测数据规模
$1 \leq M \leq 10^3$。