#include<bits/stdc++.h>
using namespace std;
// #Pattern #Placement
/* Test Case:
3
Output:
3 3 3 3 3
3 2 2 2 3
3 2 1 2 3
3 2 2 2 3
3 3 3 3 3
*/
void pattern(int n);
void setPattern(vector< vector<int> > &a,int start,int end, int n);
int main(){
int n;
cin>>n;
pattern(n);
return 0;
}
void pattern(int n){
int m=(2*n)-1;
vector< vector<int> > a(m);
for(int i=0;i<m;i++){
a[i].resize(m);
}
for(int i=0;i<m;i++){
for(int j=0;j<m;j++){
a[i][j]=-1;
}
}
setPattern(a,0,m-1,n);
for(int i=0;i<m;i++){
for(int j=0;j<m;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
}
void setPattern(vector< vector<int> > &a,int start,int end, int n){
if(start==end){
a[start][start]=1;
return;
}else{
for(int i=start;i<=end;i++){
for(int j=start;j<=end;j++){
a[i][j]=n;
}
}
setPattern(a,start+1,end-1,n-1);
}
}