#include <iostream>
using namespace std;
const int N=110;
int f[N][N];//邻接矩阵存图
int n;
int main() {
  cin>>n;int idx=1;//临时值
  int l=0,r=0;
for(int k=1;k<=n;k++,l++,r++)//左下角到右下角
    {for(int i=l,j=0;i>=0;i--,j++,idx++)
f[i][j]=idx;

    }for(int i=0;i<=n;i++)
    {for(int j=0;j<=n;j++)
    {if(f[i][j])cout<<f[i][j]<<' ';


    }cout<<endl;

    }return 0;

}//#牛客春招刷题训练营#https://www.nowcoder.com/discuss/727521113110073344
// 64 位输出请用 printf("%lld")