#include<iostream>
#include<stdio.h>
#include<set>
using namespace std;
class node
{
public:
set<int >t;
};
node st[21];
int main()
{
st[1].t .insert (0);
st[2].t .insert (0);
st[2].t .insert (1);
st[3].t .insert (0);
st[3].t .insert (2);
st[3].t .insert (3);
for(int i=4;i<=20;i++)
{
st[i].t .insert (0);
int j;
for(int j=1;j<=i;j++)
{
int k=(i-j)*j;
set<int>::iterator pre;
pre=st[j].t.begin ();
while(pre!=st[j].t .end ())
{
st[i].t .insert (k+*pre);
pre++;
}
}
}
int n;
while(scanf("%d",&n)!=EOF)
{
set<int >::iterator t;
t=st[n].t .begin ();
int k=*t;
while(++t!=st[n].t .end ())
{
printf("%d ",k);
k=*t;
}
printf("%d\n",k);
}
return 0;
}