#include<stdio.h>
#include<math.h>
#include<iostream.h>
#include<fstream.h>
const long h[] ={0,5,25,125,625,3125,15625,78125,390625,1953125,9762625,5*9762625 ,25*9762625};
const long h2[]={0,1,6, 31, 156, 781, 3906,19531, 97656, 488281,2441406,2441406+9762625,2441406+9762625+5*9762625};
long neww[12]={0};
long a,b,i,j,k,l,m,n,n2,p=0;
int loofasz(int& ertek) {
int i=0;
do {
i++;
if (p==h2[i]) {neww[i+1]=1;ertek=0;return i;}}
while (p>=h2[i]);
return i;
}
int main(void) {
FILE *f;
f=fopen("fact.in","rt");
fscanf(f,"%li",&p);
int pp=p;
int sum,temp;
if (p==0)
n=1;
else
{
n=0;
for (i=1;i<=12;i++)
{ if (h2[i]==p) {n=h[i];break;}
}
if (n==0){
n=0;
a=loofasz(temp);
temp=a;
b=a;
i=12;
while (a>1&&temp!=0) {
neww[a]=p/h2[a-1];
p=p%h2[a-1];
temp=a;
a=loofasz(temp);
}
sum=0;
for(i=1;i<=b;i++)
sum=sum+neww[i+1]*h2[i];
if (sum==pp)
for (i=1;i<=b;i++)
n=n+neww[i+1]*h[i];
if (sum!=pp) { n=-1;}
}
}
fclose(f);
f=fopen("fact.out","wt");
if (n!=-1)
fprintf(f,"%li ",n);
else
fprintf(f,"%d ",-1);
fclose(f);
return 0;
}