/*
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) > 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;
}
if (*max_element(arr, arr+24) - *min_element(arr, arr+24) > 3) {
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 << " ";
cout << arr[23] - 0.85 << " ";
forn(gg, 5) cout << "? ";
continue;
}
if (*max_element(arr, arr+24) - *min_element(arr, arr+24) < 1) {
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.3 << " ";
cout << arr[23] - 0.3 << " ";
cout << arr[23] - 0.3 << " ";
cout << arr[23] - 0.1 << " ";
cout << arr[23] - 0.2 << " ";
cout << arr[23] - 0 << " ";
cout << arr[23] - 0 << " ";
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 << " ";
cout << arr[23] - 0.85 << " ";
cout << arr[23] - 0.85 << " ";
cout << arr[23] - 0.85 << " ";
cout << "?" << endl;
cout << "?" << endl;
cout << "?" << endl;
}
return 0;
}