Problem: 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 

Solution (in CPP):

Solution:
#include <bits/stdc++.h>
using namespace std;
#define FOR(i,a,b) for(int i=a;i<b;i++)
#define FORD(i,a,b) for(int i=a;i>=b;i--)
#define REP(i,n) FOR(i,0,n)
#define pb push_back
#define en "\n"
#define ITER(i,a) for( typeof(a.begin()) i=a.begin();i!=a.end();i++)
#define mod 1000000007
#define pi  3.141592653589
#define mpp make_pair
#define mes(a,b) memset((a),(b),sizeof((a))
typedef map<int,int> MI;
typedef pair<int,int>   PI;
typedef vector<int> VI;
typedef vector<pair<int,int>> VP;
typedef long long int LL;
typedef long double ld;
bool sortbysec(const pair<int,int> &a, 
              const pair<int,int> &b) 
{ 
    if(a.second < b.second) return true; 
        if(a.second == b.second) return a.first < b.first; 
        return false;
} 
bool isprime(int n) 
{ 
    
    if (n <= 1) 
        return false; 
    
    for (int i = 2; i <=sqrt(n); i++) 
        if (n % i == 0) 
            return false; 
    return true; 
} 
bool isPowerOfTwo(int n)
{
   if(n==0)
   return false;
   return (ceil(log2(n)) == floor(log2(n)));
}
int gcd(int a, int b) 
{ 
    if (a == 0)
        return b; 
    return gcd(b % a, a); 
} 
LL lcm(LL a, LL b) 
{ 
    return (a / gcd(a, b)) * b;
} 
LL ncr(LL n, LL r){

    if(r==0) return 1;

    r = min(r, n-r);

    LL ans = 1;

    for(int i=1; i<=r; i++){
        ans *= (n-i+1);
        ans /= i;
    }
    return ans;

}
bool check(string s)
{
    for(int i=0;i<=s.size()/2;i++)
    {
        if(s[i]==s[s.size()-i-1])
        continue;
        else
        {
            return false;
            break;
        }
    }
    return true;
}

int main() {
	// your code goes here
	ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    int t=1;
    cin>>t;
    while(t--)
    {
        long long int n;
        cin>>n;
        long long int p=n+2;
        long long int a[p],sum=0;
        for(int i=0;i<p;i++)
        {
            cin>>a[i];
            sum+=a[i];
        }
        sort(a,a+p);
        sum=sum-a[p-1];
        long long int k=sum-a[p-2];
        
        if(k==a[p-1])
        {
            for(int i=0;i<n;i++)
            cout<<a[i]<<" ";
            cout<<en;
        }
        else if(sum-a[p-2]==a[p-2])
        {
            for(int i=0;i<n;i++)
            cout<<a[i]<<" ";
            cout<<en;
        }
        else
        {
            sum=sum-a[p-2];
            //cout<<sum<<en;
            bool d=false;
            long long int h=-1;
            for(int i=0;i<n;i++)
            {
                if(sum-a[i]+a[p-2]==a[p-1])
                {
                    d=true;
                    h=i;
                    break;
                }
            }
            //cout<<h<<en;
            if(d==true)
            {
            for(int i=0;i<n+1;i++)
            {
                if(i==h)
                continue;
                else
                cout<<a[i]<<" ";
            }
            cout<<en;
            }
            else
            cout<<-1<<en;
        }
    }
	return 0;
}