#include<bits/stdc++.h>
using namespace std;
#define D(a) cerr << ">> " << #a << " = >" << a << "<" << endl

#define ff              first
#define ss              second
#define pb              push_back
#define mp              make_pair
#define pii             pair<int,int>
#define vi              vector<int>
#define mii             map<int,int>
#define pqb             priority_queue<int>
#define pqs             priority_queue<int,vi,greater<int> >
#define setbits(x)      __builtin_popcountll(x)
#define zrobits(x)      __builtin_ctzll(x)
#define mod             1000000007
#define inf             1e18
#define ps(x,y)         fixed<<setprecision(y)<<x
#define mk(arr,n,type)  type *arr=new type[n];
#define test(x)            int x; cin>>x; while(x--)
#define fr(i,x, y)        for (long long i = x; i < y; i++)
#define nl              "\n"
#define ll long long
void c_p_c()
{
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    freopen("error.txt", "w", stderr);
#endif
}

ll SieveOfEratosthenes(int n)
{
    ll s = 0;
    bool prime[n + 1];
    memset(prime, true, sizeof(prime));

    for (int p = 2; p * p <= n; p++)
    {
        if (prime[p] == true)
        {
            for (int i = p * p; i <= n; i += p)
                prime[i] = false;
        }
    }
    for (int p = 2; p <= n; p++)
        if (prime[p])
            s++;
    return s;
}




int32_t main()
{
    c_p_c();
    test(t) {
        int n,  can; cin >> n;
        int a[n][n] ;
        fr(i, 0, n)
        fr(j, 0, n)
        a[i][j] = 0;
        if (!(n  % 2 == 0))
        {
            for (int i = 0, can = 1; i < n; i++, can *= -1)
            {
                for (int j = 0; j < n; j++)
                {
                    if (i == j)
                        continue;

                    can *= -1;
                    a[i][j] = -can;
                }

            }
        }
        else
        {
            for (int i = 0, can = 1; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    if (i == j || (i % 2 == 0 && j == i + 1) || (i % 2 == 1 && j == i - 1))
                        continue;
                    a[i][j] = can;
                    can *= -1;
                }
                can *= -1;
            }
        }
        for (int i = 0; i < n; i++)
        {
            for (int j = i + 1; j < n; j++)
                cout << a[i][j] << " ";
        }
        cout << endl;


    }
    return 0;

}