Koishi gives you an integer array B of length n satisfying 1≤B_1≤B_2≤…≤B_n≤n+1.
Let S(T) denote the set of numbers that appear in array T. Koishi asks you whether an array A of length n exists such that, for any l and r such that 1≤l≤r≤n, the equality S(A\[l,r])=S(A\[1,n]) holds if and only if r≥B_l. If so, please construct an array A that satisfies the condition above.
Here, A\[l,r] represents the sub-array of A formed by A_l,A_l+1,…,A_r.
You can only use integers from 0 to 109 in the array. It can be shown that, if a solution exists, then there also exists a solution satisfying this condition.
Notice: If there exists such an index i (1≤i≤n) that B_i<i holds, the required A must not exist.
The first line contains an integer T (1≤T≤6⋅104), the number of test cases. Then T test cases follow.
The first line of each test case contains an integer n (1≤n≤2⋅105), the length of array B (and A).
The next line contains n integers B_1,B_2,…,B_n (1≤B_1≤B_2≤…≤B_n≤n+1), the array that Koishi gives you.
It is guaranteed that ∑n≤2.6⋅106.
For each test case, print one line. If such an array A doesn't exist, output −1. Otherwise, you should output n numbers: the array A consisting of integers in the range from 0 to 109. If there are several possible solutions, print any one of them.