#include <stdio.h>
#include <iostream.h>
#include <string.h>

int grid[20][20];
		int count ,down;

void PrintResult();

main()

	{
	int loops;
	int curloop;

	cin >> loops;
	for( curloop = 0; curloop<loops; curloop++ )
		{

		cout.width(0);
		int i, j;
		for( i =0 ;i<20;i++ )
			for( j =0; j<20;j++ )
				grid[i][j] = 0;

		cin >> count;

		if (count % 2 == 0) down = count-1;
		else				down = count;

		for( j=0; j < down;j++ )
			{
			for( i = 0; i < count; i++ )
				{
				if( i==0 && j==0 )
					{
					grid[i][j] = down;
					if( down==1 && count!=down ) grid[i][j]++;
					grid[grid[i][j]-1][j] = i+1;
					}
				else if( grid[i][j] == 0 )
					{
					if( i == j )
						{
						grid[i][j] = grid[i-1][j-1];
						}
					else if( i==0 )
						{
						grid[i][j] = grid[i][j-1]+1;
						if( grid[i][j] > count )
							{
							if( i==0 && down!=count ) grid[i][j] = 2;
							else  	   grid[i][j] = 1;
							}
						}
					else
						{
						grid[i][j] = grid[i-1][j]-1;
						if( grid[i][j] < 1 ) grid[i][j]+=count;
						}

					
					//if( i == j ) grid[i][j] = grid[i-1][j-1];
					if( (grid[i][j]==i+1 && down!=count) || (grid[grid[i][j]-1][j]!=0 && grid[i][j]!=i+1) )
						{
						bool work;
						grid[i][j]=count+1;
						do
							{
							work = true;
							grid[i][j]--;
							if( grid[i][j] < 1) grid[i][j]=count;
							
							if( grid[grid[i][j]-1][j]!=0 ) work = false;
							else
								{
								int x;
								for(x=0;x<j;x++)
									if( grid[i][x]==grid[i][j] )
										{
										work = false;
										break;
										}
								}
							}
						while( !work );
						}
					grid[grid[i][j]-1][j] = i+1;
					}

				}
			}

		cout << "Data set " << curloop+1 <<": \r\n";
		PrintResult();

		}

	return 0;
	}

void PrintResult()
	{
	int i, j;
	for( j =0; j<down;j++ )
		{
		for( i =0 ;i<count;i++ )
			{
			cout.width(3);
			cout <<grid[i][j];
			}
		cout << "\r\n";
		}
	cout <<"\r\n";
	cout.flush();
	}