#include<iostream>
using namespace std;
int q[100][100]; //定义全局变量这样可以防止整数溢出溢出
int main()
{
int n;
while(cin>>n,n)
{
for(int i=0;i<n;i++)
{
q[i][i]=1; //定义对角线上值都为1
for(int j=i+1,k=2;j<n;j++,k++) q[i][j]=k; //j要从i+1开始,因为是从对角线开始往两边散开
for(int j=i+1,k=2;j<n;j++,k++) q[j][i]=k;
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++) //输出每个值
cout<<q[i][j]<<' ';
cout<<endl; //每行输出一个回车
}
cout<<endl; //每个n,循环结束输出一个回车
}
return 0;
}