#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
#include <cstring>
using namespace std;
void solve();
void mult();
int n,m[1000],res[1000]={1},len;
int main()
{
cin >> n;
solve();
}
void solve()
{
int tmp=n;
for(int i=2;tmp>=i;i++,len++)
{
m[len]=i;
tmp-=i;
}
if(tmp!=0)
{
tmp-=len+2;
len++;
m[len-1]=len+1;
tmp=abs(tmp);
}
if(tmp==1)
{
m[len-1]++;
m[0]=1;
}
else
{
m[tmp-2]=1;
}
mult();
for(int i=0;i<len;i++)
{
if(m[i]==1)continue;
else cout << m[i] << " ";
}
cout << "\n";
for(len=999;res[len]==0;len--);
for(;len>-1;len--)cout << res[len];
}
void mult()
{
int tmp;
for(int i=0;i<len;i++)
{
for(int j=0;j<1000;j++)
{
if(m[i]==1)break;
int c=res[j]*m[i]+tmp;
res[j]=c%10;
tmp=c/10;
}
}
}