#include<bits/stdc++.h>
using namespace std;
const int MaxN = 150;
int n;
int a[MaxN];
void backtrack(int pos, int sum)
{
if(sum==n)
{
for (int i=1; i<=pos-1; i++)
{
cout << a[i] << " ";
}
cout << "\n";
return ;
}
if(pos==1)
{
for (int i=1; i<=n; i++)
{
a[pos]=i;
backtrack(pos+1,sum+i);
}
}
else
{
for (int i=a[pos-1]+1; i<=n-sum; i+=2)
{
a[pos]=i;
backtrack(pos+1,sum+i);
}
}
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> n;
backtrack(1,0);
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgaW50IE1heE4gPSAxNTA7CmludCBuOwppbnQgYVtNYXhOXTsKdm9pZCBiYWNrdHJhY2soaW50IHBvcywgaW50IHN1bSkKewogICAgaWYoc3VtPT1uKQogICAgewogICAgICAgIGZvciAoaW50IGk9MTsgaTw9cG9zLTE7IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIGNvdXQgPDwgYVtpXSA8PCAiICI7CiAgICAgICAgfQogICAgICAgIGNvdXQgPDwgIlxuIjsKICAgICAgICByZXR1cm4gOwogICAgfQogICAgaWYocG9zPT0xKQogICAgewogICAgICAgIGZvciAoaW50IGk9MTsgaTw9bjsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAgYVtwb3NdPWk7CiAgICAgICAgICAgIGJhY2t0cmFjayhwb3MrMSxzdW0raSk7CiAgICAgICAgfQogICAgfQogICAgZWxzZQogICAgewogICAgICAgIGZvciAoaW50IGk9YVtwb3MtMV0rMTsgaTw9bi1zdW07IGkrPTIpCiAgICAgICAgewogICAgICAgICAgICBhW3Bvc109aTsKICAgICAgICAgICAgYmFja3RyYWNrKHBvcysxLHN1bStpKTsKICAgICAgICB9CiAgICB9Cn0KaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIGNpbiA+PiBuOwogICAgYmFja3RyYWNrKDEsMCk7Cn0K