#include <bits/stdc++.h>
#define debug(x) cout<< #x << " = " <<endl
using namespace std;
typedef long long LL;
const int maxn=0;
const int dst[8][2]={1,0,-1,0,0,1,0,-1, 1,1,-1,-1,1,-1,-1,1};

int n,m;
LL a[37][37];
int cl(int x, int y) { return (x-1)*m+y; }
int make(int x, int y, int xx, int yy)
{
    if (xx<1 || xx>m || yy<1 || yy>m) return 0;
    a[cl(x, y)][cl(xx, yy)]=-1;
    return 1;
}
LL det(int n, LL mat[][37])
{
    LL ret=1;
    for (int i=1; i<=n; i++)
    {
        for (int j=i+1; j<=n; j++)
            while (mat[j][i]!=0)
            {
                LL t=mat[i][i]/mat[j][i];
                for (int k=i; k<=n; k++)
                {
                    mat[i][k]=(mat[i][k]-mat[j][k]*t);
                    swap(mat[i][k],mat[j][k]);
                }
                ret=-ret;
            }
        if (mat[i][i]==0) return 0;
        ret=ret*mat[i][i];
    }
    /*for (int i=1; i<=n; i++)
    {
        for (int j=1; j<=n; j++)
            cout<<mat[i][j]<<" ";
        cout<<endl;
    }*/
    return ret;
}
int main(){
    for (int T; scanf("%d",&T)!=EOF; )
        for (int temp; T--; )
        {
            scanf("%d", &m);
            memset(a, 0, sizeof(a));
            for (int i=1; i<=m; i++)
                for (int j=1; j<=m; j++)
                {
                    temp=0;
                    for (int k=0; k<8; k++)
                        temp+=make(i, j, i+dst[k][0], j+dst[k][1]);
                    a[cl(i, j)][cl(i, j)]=temp;
                }
            n=m*m-1;
            printf("%lld\n", det(n, a));
        }
    return 0;
}
