给定一个长度为 $n$ 的数组 $b$,求一个长度为 $n$ 的数组 $a$,使得对于每个 $1 \le i \le n$,数组 $[a[1], a[2], \dots, a[i]]$ 的最长严格递增子序列的长度等于 $b[i]$。
对于一个长度为 $m$ 的数组 $c$,若子序列 $c[i_1], c[i_2], \dots, c[i_k]$ 满足 $1 \le i_1 < i_2 < \dots < i_k \le m$ 且 $c[i_1] < c[i_2] < \dots < c[i_k]$,则称其为严格递增子序列。
输入格式
第一行包含一个整数 $T$,表示测试用例的数量。 每个测试用例包含两行: 第一行包含 $n$,即数组 $b$ 的大小。 第二行包含 $n$ 个空格分隔的整数,其中第 $i$ 个整数表示 $b[i]$。
约束
- $1 \le T \le 4\,000$
- $1 \le n \le 10$
- $1 \le b[i] \le 10$
- 所有测试用例中 $n$ 的总和 $\le 20\,000$
- $1 \le a[i] \le 100$
输出格式
对于每个测试用例,如果存在满足条件的数组 $a$,则输出 YES,否则输出 NO。
如果输出 YES,则在下一行输出 $n$ 个空格分隔的整数,表示数组 $a$ 的元素。
样例
输入格式 1
2 6 1 2 3 2 5 7 2 1 2
输出格式 1
NO YES 1 2
说明
在第一个测试用例中,可以证明不存在满足条件的数组。 在第二个测试用例中,$[4, 9]$ 满足所有条件。$[4]$ 的最长严格递增子序列为 $[4]$,长度为 $1$;$[4, 9]$ 的最长严格递增子序列为 $[4, 9]$,长度为 $2$。其他可行的答案包括 $[5, 20]$ 和 $[25, 26]$。另一方面,$[5, 5]$ 和 $[10, 5]$ 是错误的答案。