//gcd方法是求公约数,lcm是求公倍数
#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
__int64 gcd(__int64 a,__int64 b)
{
if(b==0) return a;
else return gcd(b,a%b);
}
__int64 lcm(__int64 a,__int64 b)
{
return a/gcd(a,b)*b;
}
__int64 numl(__int64 a)
{
__int64 n=0;
while(a)
{
n++;
a=a/10;
}
return n;
}
int main()
{
freopen("in1.txt","r",stdin);
__int64 n,son,mother,i,j;
while(scanf("%I64d",&n)!=EOF)
{
mother=1;
for(i=1;i<=n;i++)
{
mother=lcm(mother,i);
}
son=0;
for(i=1;i<=n;i++)
{
son=son+mother/i;
}
son=n*son;
__int64 temp=gcd(son,mother);
son=son/temp;
mother=mother/temp;
__int64 d=son/mother;
son=son%mother;
if(son==0)
{
printf("%I64d\n",d);
continue;
}
__int64 l1=numl(d);
__int64 l2=numl(mother);
for(i=0;i<=l1;i++) cout<<" ";
printf("%I64d\n",son);
printf("%I64d ",d);
for(i=0;i<l2;i++)cout<<"-";
cout<<endl;
for(i=0;i<=l1;i++) cout<<" ";
printf("%I64d\n",mother);
}
return 0;
}