#include<bits/stdc++.h>
using namespace std;
char str[20005];
struct node{
int len,s[20005];
node(){len=0;memset(s,0,sizeof(s));};
};
node read(){
node a;
cin>>str;
a.len=strlen(str);
for(int i=a.len;i>0;i--)a.s[i]=str[a.len-i]-'0';
return a;
}
void print(node a){
if(a.s[a.len+1]) cout<<a.s[a.len+1];
for(int i=a.len;i>=1;i--) cout<<a.s[i];
}
node operator *(const node &a,const node &b){
node c;
c.len=a.len+b.len-1;
if((a.len==1 && a.s[1]==0) || (b.len==1 && b.s[1]==0)){c.len=1,c.s[1]=0;return c;}
for(int i=1;i<=a.len;i++){
for(int j=1;j<=b.len;j++){
c.s[i+j-1]+=a.s[i]*b.s[j];
c.s[i+j]+=c.s[i+j-1]/10;
c.s[i+j-1]%=10;
}
}
while(c.s[c.len-1]==0 && c.len>1) c.len--;
}
int main(){
node a,b,c;
a=read();
b=read();
c=a*b;
print(c);
}