Little Cyan Fish는 DFS 순서를 좋아합니다. 오늘 그는 루트가 있는 트리가 아닌, 무방향 단순 그래프에서 DFS 순서를 다시 연구하고 있습니다.
정점 $1$부터 $n$까지 번호가 매겨진 연결된 무방향 단순 그래프 $G$와 시작 정점 $s$를 고정합니다. $G$의 $s$로부터의 DFS 순서는 아래에 제시된 깊이 우선 탐색에 의해 정점들이 처음 방문되는 순서입니다. 방문하지 않은 이웃 중 가장 작은 번호를 가진 정점을 항상 우선적으로 방문함으로써 동점을 처리하므로, DFS 순서는 유일합니다.
알고리즘 1 본 문제에서 사용된 DFS 순서
1: procedure DFS(vertex x)
2: Mark x as visited
3: Append x to the end of dfs_order
4: for each vertex y adjacent to x in G, in ascending order of label do
5: if y is not yet visited then
6: DFS(y)
7: end if
8: end for
9: end procedure
10:
11: procedure GENERATE(G, vertex s)
12: Mark all vertices as unvisited
13: Let dfs_order be an empty list
14: DFS(s)
15: return dfs_order
16: end procedure
7개의 정점과 7개의 간선을 가진 그래프. 정점 1에서 시작하는 DFS 순서는 [1, 2, 3, 7, 4, 5, 6]입니다.
Little Cyan Fish는 $1$부터 $n$까지의 순열 $a_1, a_2, \dots, a_n$을 준비했습니다. 각 $a_i = [a_{i,1}, a_{i,2}, \dots, a_{i,n}]$은 그가 정점 $i$에서 시작했을 때의 DFS 순서라고 주장하는 것입니다.
모든 시작 정점 $i$에 대하여 DFS 순서가 $a_i$와 일치하는 정점 $1, 2, \dots, n$ 위의 연결된 무방향 단순 그래프 $G$를 재구성하거나, 그러한 그래프가 존재하지 않음을 판별하십시오.
입력
여러 테스트 케이스가 존재합니다. 입력의 첫 번째 줄에는 테스트 케이스의 수를 나타내는 단일 정수 $T(1 \le T)$가 주어집니다.
각 테스트 케이스의 첫 번째 줄에는 단일 정수 $n(1 \le n \le 200)$이 주어집니다. 다음 $n$개의 줄에는 각각 $n$개의 정수가 주어집니다. $i$번째 줄에는 Little Cyan Fish가 정점 $i$에서 탐색을 시작했을 때 생성된다고 주장하는 DFS 순서 $a_{i,1}, a_{i,2}, \dots, a_{i,n}(1 \le a_{i,j} \le n)$이 주어집니다. $a_{i,1} = i$임이 보장되며, 각 행 $a_i$는 $1, 2, \dots, n$의 순열입니다.
모든 테스트 케이스에 대한 $n^2$의 합은 $4 \times 10^4$을 넘지 않습니다.
출력
각 테스트 케이스에 대하여, 적절한 그래프가 존재하지 않으면 "No"를 출력하십시오.
그렇지 않으면, 첫 번째 줄에 "Yes"를 출력하십시오. 다음 줄에는 그래프의 간선 수 $m(n - 1 \le m \le \frac{n(n-1)}{2})$을 출력하십시오.
이어지는 $m$개의 줄에는 각각 정점 $u$와 $v(1 \le u, v \le n, u \neq v)$를 나타내는 두 정수를 출력하며, 이는 정점 $u$와 $v$ 사이의 무방향 간선을 의미합니다. 결과 그래프는 단순하고 연결되어 있어야 하며, 각 정점 $i$에서 시작하는 DFS 순서는 $a_i$와 같아야 합니다.
요구 사항을 만족하는 그래프가 여러 개 있다면, 그중 아무거나 출력해도 됩니다.
예제
예제 입력 1
2 3 1 2 3 2 1 3 3 2 1 3 1 2 3 2 3 1 3 1 2
예제 출력 1
Yes 2 1 2 2 3 No
참고
예제 1의 설명: 첫 번째 테스트 케이스에서 경로 $1 - 2 - 3$은 유효한 그래프입니다. 정점 1, 2, 3에서 시작하는 DFS 순서는 각각 [1, 2, 3], [2, 1, 3], [3, 2, 1]입니다. 두 번째 테스트 케이스에서는 적절한 그래프가 존재하지 않습니다.