#include<bits/stdc++.h>
using namespace std;
int f[100000]={};
int sum[3000]={0,1};
int main()
{
int m;cin>>m;
int k=1;
int len3=1;
if(1){
int i=2;
while(1)
{
if(m>i)
m-=i;
else
break;
f[k]=i;
i++;
k++;
}
}
if(1){
int x=k-1;
while(m>0)
{
m--;
f[x]++;
x--;
}
}
for(int j=1;j<=k-1;j++){
cout<<f[j]<<' ';
int ans[2000]={0};
int len1=len3;
int len2=0,x=f[j];
int g[1000]={};
while(x>0){
len2++;
g[len2]=x%10;
x/=10;
}
for(int i=1;i<=len1;i++){
x=0;
for(int p=1;p<=len2;p++){
ans[i+p-1]=sum[i]*g[p]+x+ans[i+p-1];
x=ans[i+p-1]/10;
ans[i+p-1]%=10;
}
ans[i+len2]=x;
}
len3=len1+len2;
while(ans[len3]==0&&len3>1)
len3--;
for(int o=1;o<=len3;o++)
sum[o]=ans[o];
}
cout<<endl;
for(int i=len3;i>=1;i--)
cout<<sum[i];
return 0;
}
//求大佬找一下bug,老是最后一个点过不了