/*
TASK:
LANG:C++
*/
#include<cstdio>
#include<vector>
using namespace std;
int n,l;
vector <int> v;
void rek(int i,int m,int s, int s1)
{
 int i2;
 //printf("%d %d %d %d\n",i,m,s,s1);
 //for(i2=0;i2<m-1;i2++)printf("%d ",v[i2]);
 if(s*n<s1)return;
 if(s*n==s1)
 {
  printf("%d\n",m);
  //for(i2=0;i2<m-1;i2++)printf("%d ",v[i2]);
  //printf("%d\n",v[i2]);
  l=1;
 }
 if(l)return;
 if(m<=n)
  for(i2=i;i2<=n;i2++)
  {
   v.push_back(i2);
   rek(i2,m+1,s*i2,s1*(i2+1));
   v.pop_back();
   if(l)return;
  }
}
int main()
{
 int i;
 scanf("%d",&n);
 for(i=1;i<=n;i++)
 {
  v.push_back(i);
  rek(i,1,i,i+1);
  v.pop_back();
 }
 return 0;
}
