#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define TEST_MODE 0
#if TEST_MODE
int a[12];
int b[12];
#endif
float ar[36];
void guess() {
float dif = 0.1F;
int depth = 4;
int mode = 0;
float nmin = ar[0], nmax = ar[0];
float slope = 0;
for (int i=1; i < 24; i++) {
nmin = min(nmin, ar[i]);
nmax = max(nmax, ar[i]);
slope = max(slope, abs(ar[i] - ar[i-1]));
}
float nmin2 = ar[18], nmax2 = ar[18];
for (int i=19; i < 24; i++) {
nmin2 = min(nmin2, ar[i]);
nmax2 = max(nmax2, ar[i]);
}
int dif1 = abs(nmax - nmin);
int dif2 = abs(nmax2 - nmin2);
if (slope > 2.0F) depth = 3;
if (dif1 < 5.5F && dif2 < 4.F) depth = 5;
if (dif1 < 4.5F && dif2 < 3.5F) depth = 6;
if (dif1 < 3.5F && dif2 < 2.5F) {
depth = 10;
mode = 1;
}
if (dif1 < 3.0F && dif2 < 2.F) {
depth = 12;
mode = 1;
}
for (int i=0; i < 12; i++) {
const int i2 = 24+i;
if (i > depth) {
ar[i2] = NAN;
continue;
}
float cur = ar[i2-24];
float pre = ar[i2-1];
if (mode == 1) {
if (i < 4) {
cur = pre;
} else {
cur = (nmax2+nmin2)*0.5F;
}
}
ar[i2] = abs(cur - pre) > dif ?
pre + (cur < pre ? -dif : dif) : cur;
}
if (ar[21] < ar[22] && ar[22] < ar[23]) {
ar[24] = ar[23] + dif;
} else if (ar[21] > ar[22] && ar[22] > ar[23]) {
ar[24] = ar[23] - dif;
} else {
ar[24] = ar[23];
}
}
int main() {
#if TEST_MODE
freopen("data.txt", "r", stdin);
#endif
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
for (int i=0; i < n; i++) {
for (int j=0; j < 24; j++) cin >> ar[j];
guess();
for (int j=0; j < 12; j++) {
float q = ar[j+24];
#if TEST_MODE
float ans;
cin >> ans;
if (isnan(q)) continue;
if (abs(q - ans) < 0.75F) a[j]++;
if (abs(q - ans) > 2.05F) b[j]++;
#else
if (isnan(q)) printf("? ");
else printf("%f ", q);
#endif
}
}
#if TEST_MODE
int asum = 0, bsum = 0;
printf(" i | a | b | a-b | %%\n");
for (int i=0; i < 12; i++) {
printf("%2d |%5d |%5d |%5d |%.2f\n", i, a[i], b[i], a[i]-b[i], a[i]/(float)n);
asum += a[i];
bsum += b[i];
}
printf(" |%5d |%5d |%.2f |%.2f\n", asum, bsum, (25.F*(asum-bsum)/n), asum/(float)n);
#endif
}