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 CPP):

Solution:
#include <bits/stdc++.h>
using namespace std;
const static double PI = 3.1415926535897;
const static long long int MAXX = 200007;
template <class Object>
Object Swap(Object a, Object b) {
  Object tmp = a;
  a = b;
  b = tmp;
  return tmp;
}
template <class Object>
void Line(Object obj) {
  cout << obj << " ";
}
template <class Object, class Object2>
Object Space(Object obj1, Object2 obj2) {
  cout << obj1 << " " << obj2 << "\n";
  return obj1;
}
template <class Object>
Object Reverse(Object obj, long long int l, long long int r) {
  while (l < r) {
    swap(obj[l], obj[r]);
    l++, r--;
  }
  return obj;
}
template <class Object>
Object Abs(Object obj) {
  if (obj < 0)
    return obj * -1;
  else
    return obj;
}
template <class Object>
Object Csc(Object obj) {
  return 1ll * obj * (obj + 1) / 2;
}
template <class Object>
Object Max(Object obj1, Object obj2) {
  if (obj1 >= obj2) {
    return obj1;
  }
  return obj2;
}
template <class Object>
Object Min(Object obj1, Object obj2) {
  if (obj1 >= obj2) {
    return obj2;
  }
  return obj1;
}
template <class Object>
Object Ceil(Object a, Object b) {
  if (a % b == 0) {
    return a / b;
  } else {
    return a / b + 1;
  }
}
template <class Object>
Object Gcd(Object a, Object b) {
  if (b == 0) {
    return a;
  } else {
    return Gcd(b, a % b);
  }
}
template <class Object>
Object Loop(Object obj, long long int l, long long int r) {
  for (long long int i = l; i <= r; i += 1) {
    Line(obj[i]);
  }
  return obj;
}
template <class Object>
Object Matrix(Object obj, long long int l, long long int r) {
  for (long long int i = 1; i <= l; i += 1) {
    for (long long int j = 1; j <= r; j += 1) {
      Line(obj[i][j]);
    }
    cout << "\n";
  }
  return obj;
}
template <class Object>
Object Looppair(Object obj, long long int l, long long int r) {
  for (long long int i = l; i <= r; i += 1) {
    Space(obj[i].first, obj[i].second);
  }
  return obj;
}
template <class Object>
Object See(Object obj) {
  cout << obj << "\n";
  return obj;
}
class Start {
 public:
  long long int n;
  void LOOPER() {
    cin >> n;
    while (n--) {
      long long int t;
      cin >> t;
      map<long long int, long long int> mp;
      for (long long int i = 1; i <= t * 2; i += 1) {
        long long int x;
        cin >> x;
        mp[x]++;
        if (mp[x] == 1) {
          Line(x);
        }
      }
      cout << "\n";
    }
  }

 private:
  void slove() {}
};
Start huy;
void _love() { huy.LOOPER(); }
void _nang_am() {}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  _love();
  _nang_am();
  return 0;
}