#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <string>
#include <stack>
#include <queue>
#include <vector>
#include <set>
#include <map>
#define endl "\n"
#define ls (rt<<1)
#define rs (rt<<|1)
#define mid ((l+r)<<1)
using namespace std;
typedef long long ll;
inline ll gcd(ll a, ll b) { ll r; while (b > 0) { r = a % b; a = b; b = r; }return a; }
typedef pair<ll, ll> P;
const int maxn = 1e5+7;
priority_queue<int ,vector<int> ,greater<int> > que;
priority_queue<int > q;
map<int,int> mp;
int main()
{
int t;
scanf("%d",&t);
int n;
while(t--)
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
printf("%d ",(i+j-2)%n);
printf("\n");
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
printf("%d ",(i-1)*(j-1)%n);
printf("\n");
}
}
}