#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
const int N = 55 ;
vector<pair<int,int>> vp = {{13,13},{7,14},{5,15},{4,16},{3,18},{1,12}} ;
int dp[N] , from[N] , n ;
int main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0) ;
memset(dp,0x3f,sizeof(dp)) ;
dp[0]=0 ;
for(int i=1 ; i<=50 ; i++){
for(int j=0 ; j<vp.size() ; j++){
if(i-vp[j].first>=0){
if(dp[i-vp[j].first]+vp[j].second<dp[i]) from[i]=j ;
dp[i]=min(dp[i],dp[i-vp[j].first]+vp[j].second) ;
}
}
}
// for(int i=1 ; i<=50 ; i++) cout << dp[i] << ' ' ; cout << '\n' ;
// for(int i=1 ; i<=50 ; i++) cout << from[i] << ' ' ; cout << '\n' ;
cin >> n ;
int cnt=0 ;
while(n){
int a = vp[from[n]].first , b = vp[from[n]].second/vp[from[n]].first ;
for(int i=0 ; i<a ; i++){
for(int j=0 ; j<a ; j++){
if(i==j && a!=1) continue ;
for(int l=0 ; l<b ; l++) cout << cnt+j*b+l << ' ' ;
}
cout << '\n' ;
}
cnt+=vp[from[n]].second ;
n-=vp[from[n]].first ;
}
return 0 ;
}