#include<cstdio>
#include<complex>
using namespace std;
#define REP(i,n) for(int i=0;i<(n);++i)
#define MAX_N (1<<20)
typedef complex<double> cd;
cd omega[MAX_N];
inline int mo(int a, int n){
if (a >= n) return a - n;
return a;
}
template<int x>
void FFT(cd* A, int n, int cnt = 0){
if(n==1) return;
cd *a = new cd[n];
REP(i,n/2) a[i] = A[i<<1]; FFT<x>(a,n/2,cnt+1);
REP(i,n/2) a[i+n/2] = A[(i<<1)+1]; FFT<x>(a+n/2,n/2,cnt+1);
REP(i,n/2) A[i] = a[i]+omega[mo(n-x*i,n)<<cnt]*a[i+n/2];
REP(i,n/2) A[i+n/2] = a[i]-omega[mo(n-x*i,n)<<cnt]*a[i+n/2];
delete [] a;
}
cd y[MAX_N];
int main(){
double a,b;
int z,n,N; scanf("%d", &z); while(z--){
scanf("%d", &n);
N = 1<<n;
REP(i,N){
scanf("%lf%lf", &a, &b);
y[i] = cd(a,b);
}
REP(i,N+1) omega[i] = cd(cos(2*M_PI*i/N),sin(2*M_PI*i/N));
FFT<1>(y, N);
REP(i,N) printf("%lf %lf\n", y[i].real()/N, y[i].imag()/N);
}
}