#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
int n,a,ints[114411]={};
long long t=1;
int s[10001]={};
void jc(int x)
{
for(int i=1;i<=t;i++)
{
s[i]=s[i]*x;
}
for(int i=1;i<=t;i++)
{
if(s[i]>=10)
{
long long add=s[i]/10;
s[i+1]+=add;
s[i]=s[i]%10;
if(i+1>t)
t=i+1;
}
}
}
int main(){
s[1]=1;
cin>>a;
n=a;
int i=2,j=0,intslength=0;
while(n-i>=0){
ints[j]=i;
n-=i;
i++; j++;
intslength++;
}
int shengyu=n;
j=0;
sort(ints,ints+intslength);
while(shengyu>0){
if(j==intslength)j=0;
if(ints[j]+1!=ints[j+1]){
ints[j]+=1;
j++;
shengyu--;
}else{
j++;
}
}
if(intslength==1){
ints[0]-=1;
ints[1]=1;
intslength+=1;
}
sort(ints,ints+intslength);
for(int i=0;i<intslength;i++)cout<<ints[i]<<" ";
for(int i=0;i<intslength;i++)
{
jc(ints[i]);
}
cout<<endl;
for(int i=t;i>0;i--){
cout<<s[i];
}
}