#include <iostream>
#include <vector>
#include <set>
//本题使用到序列和集合内容
using namespace std;

int main() {
  //本题需要每次查找第ai项之前的每一项是否含有与其相同的值,所以
  //需要用到集合中的count函数(也可以用find不过比较麻烦,因为它返回的是一个指针)
    int T{};
    cin>>T;//定义T组数据

    while(T--)
    {
        int n{};
        cin>>n;//每组数据n个值

        vector<int> a(n),b;
        set<int> c;//根据题意定义两个序列和一个集合,其中集合c用来检查ai是否已经存在

        for(int &it:a)
        {
            cin>>it;//将数据写入序列a,这个写法很方便
        }

        for(int i=0;i<n;i++)//对序列a逐项查找
        {
            bool k=true;//定义一个布尔值,用来判断ai是否已经出现过
            if(c.count(a[i]))//如果查找到了ai则改变布尔值
                {
                    k=false;
                    
                }
                
            
            c.insert(a[i]);//将ai写入集合中
            if(k==true)
            {
                b.push_back(a[i]);//如果是真值说明没找到ai,此时将ai写入序列b
            }
        }
        
        for(int it:b)
        {
            cout<<it<<" ";//遍历输出序列b
        }
        cout<<endl;//别忘了换行哦

    }


    return 0;
}
// 64 位输出请用 printf("%lld")