#define MAXN 50001
#define inl inline
#include <iostream>
#include <cstdio>
#include <cctype>
#include <algorithm>
#include <vector>
using namespace std;
struct Data {
int val, pos;
};
int t, n, num2;
Data dat1[MAXN], dat2[MAXN];
inl int readInt();
bool comp1(Data d1, Data d2);
bool comp2(Data d1, Data d2);
int main() {
t = readInt();
while (t--) {
n = readInt();
for (int i = 1; i <= n; i++) {
dat1[i].val = readInt();
dat1[i].pos = i;
}
sort(dat1 + 1, dat1 + n + 1, comp1);
num2 = 1;
dat2[1] = dat1[1];
for (int i = 2; i <= n; i++) {
if (dat1[i].val != dat1[i - 1].val) dat2[++num2] = dat1[i];
}
sort(dat2 + 1, dat2 + num2 + 1, comp2);
for (int i = 1; i <= num2; i++) printf("%d ", dat2[i].val);
printf("\n");
}
return 0;
}
inl int readInt() {
char c = getchar();
int val = 0, sgn = 1;
while (!isdigit(c)) sgn = c == '-'? -1 : 1, c = getchar();
while (isdigit(c)) val = (val << 3) + (val << 1) + (c ^ 48), c = getchar();
return val * sgn;
}
bool comp1(Data d1, Data d2) {
return d1.val < d2.val;
}
bool comp2(Data d1, Data d2) {
return d1.pos < d2.pos;
}