/*
    C++ code author: Vludo
    Created: 2023-11-08 07:54:29
*/
#include <bits/stdc++.h>
 
#define forn(i, n) for(int i=0; i<n; i++)
#define FOR(i, j, n) for(int i=j; i<n; i++)
#define pb push_back
#define F first
#define S second
#define ever ;;
 
typedef long long ll;
 
const int inf = 1.01e9;
const int mod = 1e9 + 7;
 
using namespace std;
 
// ---- main part ---- //
 
float b1 = 0.02623708478682374;
float k1[24] = {-0.02197703, 0.04341374, 0.00145373, 0.01315305 -0.05389639, 0.04299994,
				-0.02205997, 0.00549526, 0.0104706, -0.05514824, 0.06700865, 0.00835559,
				-0.04119852, 0.00315418, 0.03318097 -0.01621034 -0.03318527, 0.02477104,
				-0.02522914, 0.00697602 -0.00412755 -0.09377667, 0.05058915, 0.99879108};
 
static inline unsigned long long rdtsc() { unsigned long long d; asm volatile ("rdtsc" : "=A" (d) ); return d; }
 
 
int main () {
	ios_base::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);
	srand(rdtsc());
	
	int n;
	cin >> n;
	
	forn(i, n) {
		float arr[36];
		
		forn(j, 24) {
			cin >> arr[j];
		}
		
		
		if (*max_element(arr, arr+24) - *min_element(arr, arr+24) > 20) {
			cout << arr[23] + 0.1 << " ";
			forn(gg, 10) cout << "? ";
			cout << "?" << endl;
			continue;
		}
		
		if (*max_element(arr, arr+24) - *min_element(arr, arr+24) > 15) {
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] + 0.1 << " ";
			forn(gg, 8) cout << "? ";
			cout << "?" << endl;
			continue;
		}
		
		if (*max_element(arr, arr+24) - *min_element(arr, arr+24) > 7) {
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] - 0.2 << " ";
			cout << arr[23] - 0.3 << " ";
			forn(gg, 6) cout << "? ";
			cout << "?" << endl;
			continue;
		}
		
		if (*max_element(arr, arr+24) - *min_element(arr, arr+24) > 6) {
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] - 0.2 << " ";
			cout << arr[23] - 0.3 << " ";
			forn(gg, 6) cout << "? ";
			cout << "?" << endl;
			continue;
		}
		
		if (*max_element(arr, arr+24) - *min_element(arr, arr+24) > 5) {
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] - 0.2 << " ";
			cout << arr[23] - 0.3 << " ";
			cout << arr[23] - 0.4 << " ";
			forn(gg, 5) cout << "? ";
			cout << "?" << endl;
			continue;
		}
		
		if (arr[23] <= 1.8 && arr[23] >= -1.8) {
			cout << arr[23] - 0.07 << " ";
			cout << arr[23] - 0.1 << " ";
			cout << arr[23] - 0.1 << " ";
			cout << arr[23] - 0.2 << " ";
			cout << arr[23] - 0.3 << " ";
			cout << arr[23] - 0.4 << " ";
			cout << arr[23] - 0.4 << " ";
			cout << arr[23] - 0.3 << " ";
			cout << arr[23] - 0.2 << " ";
			cout << arr[23] - 0.1 << " ";
			cout << arr[23] - 0.1 << " ";
			cout << arr[23] - 0.07 << endl;
			continue;
		}
		
		if (arr[23] > 1.8 && arr[23] < 5) {
			cout << arr[23] - 0 << " ";
			cout << arr[23] - 0 << " ";
			cout << arr[23] - 0 << " ";
			cout << arr[23] - 0.2 << " ";
			cout << arr[23] - 0.2 << " ";
			cout << arr[23] - 0.3 << " ";
			cout << arr[23] - 0.3 << " ";
			cout << arr[23] - 0.5 << " ";
			cout << arr[23] - 0.5 << " ";
			forn(gg, 3) cout << "? ";
			continue;
		}
		
		cout << arr[23] + 0.1 << " ";
		cout << arr[23] + 0.1 << " ";
		cout << arr[23] + 0.1 << " ";
		cout << arr[23] - 0.2 << " ";
		cout << arr[23] - 0.3 << " ";
		cout << arr[23] - 0.85 << " ";
		forn(gg, 5) cout << "? ";
		cout << "?" << endl;
	}
	
	return 0;
}