给你一棵拥有 $n$ 个结点的有向树,结点编号为 $1$ 到 $n$。该树以结点 $1$ 为根,且保证所有结点均可从根结点到达。对于每个 $2 \le i \le n$,树中都有一条从结点 $p_i$ 指向结点 $i$ 的有向边。
小蓝鱼想要向该图中添加最多 $n$ 条额外的有向边,以满足以下条件:
- 对于任意一对不同的整数 $(u, v)$(满足 $1 \le u \le n$ 且 $1 \le v \le n$),都可以通过最多 $4$ 条边从结点 $u$ 到达结点 $v$。
请帮助小蓝鱼找到一种可行的加边方案。
输入格式
输入包含多组测试数据。第一行包含一个整数 $T$ ($T \ge 1$),表示测试数据的组数。对于每组测试数据:
第一行包含一个整数 $n$ ($n \ge 2$)。
第二行包含 $n - 1$ 个整数 $p_2, p_3, \dots, p_n$ ($1 \le p_i < i$),表示每个结点 $2 \le i \le n$ 的父结点。
保证所有测试数据的 $n$ 之和不超过 $4000$。
输出格式
对于每组测试数据,如果无法通过添加最多 $n$ 条边来满足小蓝鱼的要求,输出单行 "No"。
否则,输出的第一行包含单行 "Yes"。
第二行包含一个整数 $m$ ($0 \le m \le n$),表示添加的边数。接下来的 $m$ 行,每行包含两个整数 $u_i$ 和 $v_i$ ($1 \le u_i, v_i \le n$),描述一条添加的有向边,分别表示第 $i$ 条添加的边的起点和终点。
样例
输入样例 1
2 3 1 2 5 1 1 2 2
输出样例 1
Yes 1 3 1 Yes 5 1 4 4 1 3 3 3 1 5 2
说明
在第一组测试数据中,你可以通过添加一条从结点 $3$ 到结点 $1$ 的边来满足题目中的条件。