Problem: A permutation of length n is a sequence of integers from 1 to n of length n containing each number exactly once. For example, [1], [4, 3, 5, 1, 2], [3, 2, 1] are permutations, and [1, 1], [0, 1], [2, 2, 1, 4] are not.

There was a permutation p[1 ... n]. It was merged with itself. In other words, let's take two instances of p and insert elements of the second p into the first maintaining relative order of elements. The result is a sequence of the length 2n.

For example, if p=[3, 1, 2] some possible results are: [3, 1, 2, 3, 1, 2], [3, 3, 1, 1, 2, 2], [3, 1, 3, 1, 2, 2]. The following sequences are not possible results of a merging: [1, 3, 2, 1, 2, 3], [3, 1, 2, 3, 2, 1], [3, 3, 1, 2, 2, 1].

For example, if p=[2, 1] the possible results are: [2, 2, 1, 1], [2, 1, 2, 1]. The following sequences are not possible results of a merging: [1, 1, 2, 2], [2, 1, 1, 2], [1, 2, 2, 1].

Your task is to restore the permutation p by the given resulting sequence a. It is guaranteed that the answer exists and is unique.

You have to answer t independent test cases.

Input

The first line of the input contains one integer t (1 ≤ t ≤ 400) — the number of test cases. Then t test cases follow.

The first line of the test case contains one integer n (1 ≤ n ≤ 50) — the length of permutation. The second line of the test case contains 2n integers a_1, a_2, ..., a_{2n} (1 ≤ a_i ≤ n), where a_i is the i-th element of a. It is guaranteed that the array a represents the result of merging of some permutation p with the same permutation p.

Output

For each test case, print the answer: n integers p_1, p_2, ..., p_n (1 ≤ p_i ≤ n), representing the initial permutation. It is guaranteed that the answer exists and is unique.

Example

Input


5
2
1 1 2 2
4
1 3 1 4 3 4 2 2
5
1 2 1 2 3 4 3 5 4 5
3
1 2 3 1 2 3
4
2 3 2 4 1 3 4 1


Output


1 2 
1 3 4 2 
1 2 3 4 5 
1 2 3 
2 3 4 1 

Solution (in PYTHON3):

Solution:
# Codeforces round 655

'''test=int(input())
for i in range(test):
    n=int(input())
    arr=[1 for i in range(n)]
    print(*arr)'''

'''test=int(input())
for i in range(test):
    n=int(input())
    i=2
    arr=[]
    while i**2<=n:
        if n%i==0:
            arr.append(i)
            arr.append(n/i)
        i+=1
    if arr:
        k=max(arr)
        print(int(k),int(n-k))
    else:
        print(1,n-1)'''

'''test=int(input())
for i in range(test):
    n=int(input())
    arr=[int(i) for i in input().split()]
    t=arr.copy()
    t.sort()
    j=n
    for i in range(n-1,-1,-1):
        if arr[i]==t[i]:
            j-=1
        else:
            break
    arr=arr[:j]
    if not arr:
        print(0)
    else:
        dp=[0 for j in range(len(arr))]
        for i in range(len(arr)):
            if arr[i]==t[i]:
                dp[i]=1
            else:
                dp[i]=0
        cnt=0
        recent=-1
        for i in range(1,len(arr)):
            if dp[i]==1 and dp[i-1]==0:
                cnt+=1
        print(dp)
        if not cnt:
            print(1)
        else:
            cnt+=1 if dp[-1]==0 else 0
            print(cnt)'''


#codeforces educational round
'''string=input()
patt=input()
from collections import defaultdict
ans=float("inf")
cnt=defaultdict(int)
for i in patt:
    cnt[i]+=1
l=0
cnt_2=defaultdict(int)
for i in range(len(string)):
    if string[i] in patt:
        cnt_2[string[i]]+=1
    print(cnt_2)
    flag=0
    while all(cnt[k]==cnt_2[k] for k in cnt.keys()):
        if string[l] in patt:
            cnt_2[string[l]]-=1
        l+=1
        flag=1
    if flag:
        l-=1
        cnt_2[string[l]]+=1
        flag=0
        print(l)
        ans=min(ans,i-l+1)
        print(i-l+1)

print(ans)'''
    
'''n,m=[int(i) for i in input().split()]
if m==n:
    s=""
    for i in range(m):
        s+="10"
    print(s)
elif m>n:
    if m>2*(n+1):
        print(-1)
    else:
        s=""
        for i in range(m-n-1):
            s+="110"
        for j in range(2*(n+1)-m):
            s+="10"
        print(s[:m+n])
else:
    if n>m+1:
        print(-1)
    else:
        s=""
        for j in range(m):
            s+="01"
        s+="0"
        print(s)'''

'''n=int(input())
dates=[]
for i in range(n):
    a,b=[int(j) for j in input().split()]
    dates.append([a,b])
dates.sort(key=lambda x: x[0])
ans=dates[0][1]
from collections import defaultdict
cnt=defaultdict(int)
for i in range(n):
    if cnt[dates[i][0]]<dates[i][1]:
        cnt[dates[i][0]]=dates[i][1]
        
#print(cnt)
for i in range(1,n):
    if cnt[dates[i][0]]>=ans:
        ans=cnt[dates[i][0]]
    else:
        ans=dates[i][0]
print(ans)
print (cnt)'''
    

'''n=int(input())
arr=[int(i) for i in input().split()]
from collections import defaultdict
cnt=defaultdict(int)
for i in arr:
    cnt[i]+=1
k=max(arr)
dp=[0 for i in range(k+1)]
dp[0]=0
dp[1]=cnt[1]
for i in range(2,k+1):
    dp[i]=max(dp[i-1],dp[i-2] + cnt[i]*i)
    #print(dp[i])
print(dp[-1])'''

#Codeforces round 656 DIV-3
'''test=int(input())
for i in range(test):
    x,y,z=[int(i) for i in input().split()]
    if x==y==z:
        print("YES")
        print(x,y,z)
    else:
        if z==x and y<x:
            print("YES")
            print(y,x,max(1,y-1))
        elif y==z and x<y:
            print("YES")
            print(x,max(1,x-1),y)
        elif x==y and z<y:
            print("YES")
            print(x,z,max(1,z-1))
        else:
            print("NO")
'''
test=int(input())
for i in range( test):
    n=int(input())
    arr=[int(i) for i in input().split()]
    visited=[0 for i in range(n+1)]
    ans=[]
    for i in range(len(arr)):
        if visited[arr[i]]==0:
            ans.append(arr[i])
            visited[arr[i]]=1
    print(*ans)