#include<iostream>
using namespace std;
void daoxu(int a[],int t){
int temp=0;
for(int i=0;i<t/2;i++){
temp=a[i];
a[i]=a[t-1-i];
a[t-1-i]=temp;
}
} //将数列倒序重排
int main(){
int a[2005]={0},b[2005]={0},c[4010]={0};
int p=0,q=0;
char ch;
for(int i=0;;i++){
ch=getchar();
if(ch=='\n')
break;
a[i]=ch-'0';
p++;
}
for(int i=0;;i++){
ch=getchar();
if(ch=='\n')
break;
b[i]=ch-'0';
q++;
}
daoxu(a,p);
daoxu(b,q); //分别把a b数列倒序,a[0] b[0]都为个位
for(int i=0;i<p;i++){
for(int j=0;j<q;j++){
c[i+j]+=a[i]*b[j];
}
} //使a b中每一位分别相乘,并放到c数组中对应的位置上
for(int i=0;i<4000;i++){
if(c[i]>=10){
c[i+1]+=c[i]/10;
c[i]=c[i]%10;
}
} //对c数组从个位开始进位
int k=0;
for(int i=4000;i>=0;i--){
if(k==0&&c[i]!=0){
k=1;
}
if(k==1)
cout<<c[i];
} //从后面更高位开始输出c数组,得到相乘结果
if(k==0)
cout<<'0'; //若c中全为零,即相乘结果为0则输出0
return 0;
}