#include<cstdio>
inline int print( int n )
{
static char buf[30], *tail = buf;
if( n < 10 )
{
putchar( '0' );
}
for( ; n; n /= 10 ) *++tail = (n % 10) ^ 48;
for( ; tail != buf; --tail ) putchar(*tail);
}
int square( int n )
{
for( register int i = 1; i <= n*n; ++i )
{
print( i );
if( i % n == 0 ) putchar( '\n' );
}
}
int js( int n )
{
int ans = 0;
for( register int i = 1; i <= n; ++i )
ans += i;
return ans;
}
int triangle( int n )
{
int m = 1;
for( int i = 1; i <= n; i++ )
{
for( int j = 1; j <= n-i; j++ )
putchar( ' ' ), putchar( ' ' );
for( ;m <= i*(i+1)/2; )
print( m ), m++;
putchar( '\n' );
}
}
int main()
{
int n;
scanf( "%d", &n );
square( n );
putchar( '\n' );
triangle( n );
return 0;
}