#CF1931F. F. 聊天截图

F. 聊天截图

F. 聊天截图

每次测试的时间限制:2 秒
每次测试的内存限制:256 兆字节

在一个编程竞赛的聊天室中有 nn 个人。聊天参与者按活跃度排序,但每个人看到的自己都位于列表的最上方。

例如,有 44 个聊天参与者,他们的真实顺序是 [2,3,1,4][2,3,1,4]。那么:

  • 11 个用户看到的顺序是 [1,2,3,4][1,2,3,4]
  • 22 个用户看到的顺序是 [2,3,1,4][2,3,1,4]
  • 33 个用户看到的顺序是 [3,2,1,4][3,2,1,4]
  • 44 个用户看到的顺序是 [4,2,3,1][4,2,3,1]

kk 个人在聊天中发布了截图,截图显示的是该用户看到的参与者顺序。截图是在很短的时间内拍摄的,参与者的顺序没有发生变化。

你的任务是判断是否存在一个真实的顺序,使得所有截图都与该顺序对应。

输入格式
第一行包含一个整数 tt1t1041 \le t \le 10^4)——测试用例的数量。接下来是每个测试用例的描述。

每个测试用例的第一行包含两个整数 nnkk1kn21051 \le k \le n \le 2 \cdot 10^5nk2105n \cdot k \le 2 \cdot 10^5)——聊天参与者的数量和发布截图的参与者数量。

接下来的 kk 行,每行包含 nn 个整数 ai1,ai2,,aina_{i1}, a_{i2}, \dots, a_{in}1aijn1 \le a_{ij} \le n,所有 aija_{ij} 互不相同)——第 ii 个截图显示的顺序。其中 ai0a_{i0} 是截图作者,可以保证在截图中它位于列表的最上方。

保证所有测试用例的 nkn \cdot k 之和不超过 21052 \cdot 10^5。同时保证所有截图作者的编号互不相同。

输出格式
输出 tt 行,每行是对应测试用例的答案。如果存在至少一种真实顺序使得所有截图都能得到,输出 "YES",否则输出 "NO"

你可以以任意大小写输出答案(例如 "yEs""yes""Yes""YES" 都会被识别为肯定回答)。

示例

输入:

10
5 1
1 2 3 4 5
4 4
1 2 3 4
2 3 1 4
3 2 1 4
4 2 3 1
6 2
1 3 5 2 4 6
6 3 5 2 1 4
3 3
1 2 3
2 3 1
3 2 1
10 2
1 2 3 4 5 6 7 8 9 10
10 9 8 7 6 5 4 3 2 1
1 1
1
5 2
1 2 3 5 4
2 1 3 5 4
3 3
3 1 2
2 3 1
1 3 2
5 4
3 5 1 4 2
2 5 1 4 3
1 5 4 3 2
5 1 4 3 2
3 3
1 3 2
2 1 3
3 2 1

输出:

YES
YES
YES
YES
NO
YES
YES
YES
YES
NO