/*    Author : Prakhar Rai    */
#include<bits/stdc++.h>
#define ll long long
#define ld long double
#define LB(x,num) lower_bound(x.begin(),x.end(),num) - x.begin()
#define UB(x,num) upper_bound(x.begin(),x.end(),num) - x.begin()
#define BS(x,num) binary_search(x.begin(),x.end(),num)
#define pb push_back
#define mp make_pair
#define fs first
#define sc second
#define vci vector<int>
#define vcll vector<ll>
#define vcd vector<long double>
#define line(x) sort(x.begin(),x.end())
#define all(x) x.begin(),x.end()
#define newl "\n"
#define vc vector
#define loop(i,a,b) for(int i = a; i < b; i++)
#define lol(i,a,b) for(ll i = a; i < b; i++)
#define lod(i,a,b) for(ld i = 0; i < b; i++)
#define mod 1000000007
#define read(v,n) lol(i,0,n) {ll x; cin >> x; v.pb(x);}
#define run(a,x) for(auto x : a)
#define yes "YES"
#define no "NO"
ll cnt;
using namespace std;
// ll dp[10000000];
// memset(dp, -1, sizeof(dp));

void solve() {
	ll n; cin >> n;
	vcll v;
	read(v, n + 2);
	sort(all(v));
	ll sum = 0;

	lol(i, 0, n) {
		sum += v[i];
	}

	if (sum == v[n]) {
		lol(i, 0, n) {
			cout << v[i] << ' ';
		}
		cout << newl;
		return;
	}

	sum += v[n];

	lol(i, 0, n + 1) {
		if (sum - v[i] == v[n + 1]) {
			lol(j, 0, n + 1) {
				if (i == j) {
					continue;
				} else {
					cout << v[j] << ' ';
				}
			}
			cout << newl;
			return;
		}
	}

	cout << -1 << newl;
	return;
}

// FILE WITH TEST CASE

void init() {
#ifndef ONLINE_JUDGGE
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
#endif
}

int main() {
// 	init();
	ios_base::sync_with_stdio(false); cin.tie(0);
	int t; cin >> t;
	while (t--)
		solve();
}
/* This is my journey and i shall endure the work to reach the top .*/