#include <bits/stdc++.h>
using namespace std;
string add(string s1,string s2)
{
int l1 = s1.size();
int l2 = s2.size();
if(l2>l1)
{
int n = l2-l1;
while(n)
{
s1 = '0'+s1;
n--;
}
}
if(l1>l2)
{
int n = l1-l2;
while(n)
{
s2 = '0'+s2;
n--;
}
}
int cf = 0;
int len = s1.size();
string ss;
for (int i=len-1;i>=0;i--)
{
int a = s1[i]-'0'+s2[i]-'0'+cf;
int tmp = a%10;
cf = a/10;
ss= char(tmp+'0')+ss;
}
if(cf!=0)
{
ss=char(cf+'0')+ss;
}
//ss.erase(0,ss.find_first_not_of('0'));
return ss;
}
bool cmp(string s1,string s2)
{
if(s1.size()!=s2.size()) return s1.size()>s2.size();
return s1>=s2;
}
//s1>=s2
string sub(string s1,string s2)
{
int l1 = s1.size();
int l2 = s2.size();
if(l1>l2)
{
int n = l1-l2;
while(n)
{
s2 = '0'+s2;
n--;
}
}
int cf=0;
string ss;
for (int i=s1.size()-1;i>=0;i--)
{
int tmp;
if(s1[i]-cf>=s2[i]) {tmp = s1[i]-s2[i]-cf;cf=0;}
else {
tmp = s1[i]+10-s2[i]-cf;
cf = 1;
}
ss= char(tmp+'0')+ss;
}
ss = ss.erase(0,ss.find_first_not_of('0'));
if(ss=="") ss="0";
return ss;
}
string mul(string s1,string s2)
{
int l1 = s1.size();
int l2 = s2.size();
string str;
for (int i=l2-1;i>=0;i--)
{
string suf;
for (int k=l2-1-i;k>0;k--)
suf+="0";
int num = s2[i]-'0';
int cf = 0;
string tss;
for (int j=l1-1;j>=0;j--)
{
int tmp = (s1[j]-'0')*num+cf;
cf = tmp/10;
tss= char(tmp%10+'0')+tss;
}
if(cf!=0) tss=char(cf+'0')+tss;
str=add(str,tss+suf);
}
str = str.erase(0,str.find_first_not_of('0'));
if(str=="") str="0";
return str;
}
int main()
{
string s1,s2;
while(cin>>s1>>s2)
{
string s3 ;
s3=mul(s1,s2);
cout<<s3<<endl;
}
}