You are given a number n and an array b_1, b_2, …, b_{n+2}, obtained according to the following algorithm: 

  * some array a_1, a_2, …, a_n was guessed; 
  * array a was written to array b, i.e. b_i = a_i (1 ≤ i ≤ n); 
  * The (n+1)-th element of the array b is the sum of the numbers in the array a, i.e. b_{n+1} = a_1+a_2+…+a_n; 
  * The (n+2)-th element of the array b was written some number x (1 ≤ x ≤ 10^9), i.e. b_{n+2} = x; The 
  * array b was shuffled. 



For example, the array b=[2, 3, 7, 12 ,2] it could be obtained in the following ways: 

  * a=[2, 2, 3] and x=12; 
  * a=[3, 2, 7] and x=2. 



For the given array b, find any array a that could have been guessed initially.

Input

The first line contains a single integer t (1 ≤ t ≤ 10^4). Then t test cases follow.

The first line of each test case contains a single integer n (1 ≤ n ≤ 2 ⋅ 10^5).

The second row of each test case contains n+2 integers b_1, b_2, …, b_{n+2} (1 ≤ b_i ≤ 10^9).

It is guaranteed that the sum of n over all test cases does not exceed 2 ⋅ 10^5.

Output

For each test case, output: 

  * "-1", if the array b could not be obtained from any array a; 
  * n integers a_1, a_2, …, a_n, otherwise. 



If there are several arrays of a, you can output any.

Example

Input


4
3
2 3 7 12 2
4
9 1 7 1 6 5
5
18 2 2 3 2 9 2
3
2 6 9 2 1


Output


2 3 7 
-1
2 2 2 3 9 
1 2 6 
/* For you,
                who has never forgotten 
                the magic.
                It wants you to know 
                it remembers you too.*/
/*J. M. D.  */
#include <bits/stdc++.h>
using namespace std;
#define int             long long 
#define pll             pair<int,int>
#define ppll            pair<int,pll>
#define vvll            vector<vector<int>>
#define l_b             lower_bound
#define u_b             upper_bound
#define vll             vector<int>
#define vpll            vector<pll>
#define vc              vector <char>
#define vs              vector <string>
#define pb              emplace_back
#define p_b             pop_back()
#define prq             priority_queue
#define setbits(x)      __builtin_popcountll(x)
#define sps(x,y)        fixed<<setprecision(y)<<x
#define hell            1000000007
#define rep(i,s,n)      for(int i=s;i<n;i++)
#define ff              first
#define mem(arr,x)      memset(arr,x,sizeof(arr))
#define ss              second
#define pi              3.14159265358979323846
#define all(v)          v.begin(),v.end()
#define allr(x)         x.rbegin(),x.rend()
#define mp              make_pair
#define display(x)      for(auto dsp:x)cout<<dsp<<" "; cout<<"\n";
#define INF             1000000000000000000//15
void fast() 
{
  ios_base::sync_with_stdio(0);
  cin.tie(0); cout.tie(0);
#ifndef ONLINE_JUDGE
  freopen("input.txt", "r", stdin);
  freopen("output.txt", "w", stdout);
#endif
}
const int N = 1e5+100;
//---------------------------------------------
int dr[4] = {0, 0, 1,-1};
int dc[4] = {1,-1, 0, 0};
 
int ddr[8]= {0, 0, 1, -1, 1, -1, 1, -1};
int ddc[8]= {1, -1, 0, 0, 1, -1, -1, 1};
 
int ddr1[8]= {1, 1, -1, -1, 2, 2, -2, -2};
int ddc1[8]= {2, -2, 2, -2, 1, -1, 1, -1};
//--------------------------------------------





int32_t main() {
     fast();
     int t,zz;
     cin>>t;
     rep(zz,1,t+1){
     // cout<<"Case #"<<zz<<": ";
     
     int n, mysum=0;
     cin>>n;
     n+=2;
     vll v(n);
     for(auto &i: v){
        cin>>i;
        mysum+= i;
     }
     sort(all(v));
     int idx=-1, ids=-1;
     rep(i,0,n-1){
        int x1= v[i];
        int t1= mysum-x1- v[n-1];
        if(t1== v[n-1]){
            idx= i;
            ids= n-1;
            break;
        }
     }
     int x1= v[n-1];
     int t1= mysum-x1-v[n-2];
     if(t1== v[n-2]){
        idx= n-1;
        ids= n-2;
     }
     if(idx==-1){
        cout<<-1<<"\n";
     }
     else{
        rep(i,0,n){
            if(i==idx) continue;
            if(i==ids) continue;
        cout<<v[i]<<" ";
       }
       cout<<"\n";
     }
 }}