#include<iostream>
#include<cstring>
using namespace std;
const int size = 500;
int numbit[size], fac[size];
char num[size];
int multip(int digit1,int digit2 )//numbit乘以fac,结果放在numbit,返回numbit的位数
{ int digit, carry, temp;
int tmp[size];
memset( tmp, 0, sizeof(tmp) );
for ( int i = 0; i < digit2; i++ ){
for ( int j = 0; j < digit1; j++ ){
tmp[i+j] += numbit[j]*fac[i];
}
}
digit = digit1+digit2; carry = 0;
for ( int i = 0; i < digit; i++){
temp = (tmp[i]+carry)/10;
numbit[i] = (tmp[i]+carry)%10;
carry = temp;
}
while ( numbit[digit-1] == 0 ) digit--;
return digit;
}
void swap_type( int fac[], char num[] , int digit )
{ for ( int i = 0, j = digit-1; i < digit; i++, j-- )
fac[i] = num[j]-'0';
return;
}
int main( void )
{ int digit1, digit2;
numbit[0] = 1; digit1 = 1;
while ( cin >> num ){
digit2 = strlen( num );
swap_type( fac, num, digit2 );
digit1 = multip( digit1, digit2 );
for ( int i = digit1-1; i >= 0; i-- )
cout << numbit[i];
cout << endl;
}
return 0;
}