using namespace std;
int a[100000]={};
int l=1;
int main(){
a[0]=1;
int n,m;
cin>>n;
if(n==3){
cout<<3<<endl;
cout<<3;return 0;
}else if(n==4){
cout<<4<<endl;
cout<<4;return 0;
}
int i=2;
while(1){
if((i-1)*(i+2)/2>=n){
m=i-1;break;
}
i++;
}
i--;
//cout<<m<<endl;
int lea=n-((i-1)*(i+2)/2);
//cout<<lea<<endl;
int p=m-lea;
for(int i=2; i<=p; i++)cout<<i<<" ";
for(int i=p+2; i<=m+1; i++)cout<<i<<" ";
cout<<endl;
for(int i=2; i<=p; i++){
for(int j=0; j<l; j++){
a[j]*=i;
}
for(int j=0; j<l; j++){
a[j+1]+=a[j]/10;
a[j]%=10;
}
while(a[l]){
l++;
a[l]+=a[l-1]/10;
a[l-1]%=10;
}
while(a[l-1]==0&&l-1>=1)l--;
}
//for(int i=l; i>=0; i--)cout<<a[i];
//cout<<endl;
for(int i=p+2; i<=m+1; i++){
for(int j=0; j<l; j++){
a[j]*=i;
}
for(int j=0; j<l; j++){
a[j+1]+=a[j]/10;
a[j]%=10;
}
while(a[l]){
l++;
a[l]+=a[l-1]/10;
a[l-1]%=10;
}
while(a[l-1]==0&&l-1>=1)l--;
}
for(int i=l-1; i>=0; i--)cout<<a[i];
return 0;
}