#include<iostream>
using namespace std;
#include<string>
#include<cstdio>
int a[2001], b[2001];
int d[4002];
int main()
{
string s,y;
cin >> s; cin >> y;
//倒置储存
int i, j;
for (i = 0; i < s.size(); ++i)
{
a[i] = s[s.size() - i - 1] - '0';
}
for (i = 0; i < y.size(); ++i)
{
b[i] = y[y.size() - i - 1] - '0';
}
//分位数储存相乘值
for (i = 0; i < s.length(); ++i)
{
for (j = 0; j < y.length(); ++j)
{
d[i + j ] = d[i + j ] + a[i] * b[j];
}
}
/*for (i = 0; i < s.length() + y.length() - 1; ++i)
{
cout << d[i]<<endl;
}*/
//进位倒置
int temp = 0;
for (i = 0; i < s.length() + y.length(); ++i)
{
int t = d[i];
d[i] = (d[i] + temp) % 10;
temp = (t + temp) / 10;
}
//======
//倒置
for (i = 0; i < (s.length() + y.length()) / 2; ++i)
{
temp = d[i];
d[i] = d[s.length() + y.length() - i - 1];
d[s.length() + y.length() - i - 1] = temp;
}
//输出
if (d[0] != 0)
{
for (i = 0; i < s.length() + y.length(); ++i)
{
cout << d[i];
}
}
else if (d[0] == 0)
{
for (i = 0; i < s.length() + y.length(); ++i)
{
if (d[i] != 0)break;
}
if (i == s.length() + y.length())cout << "0";
else
{
for (i; i < s.length() + y.length(); ++i)
{
cout << d[i];
}
}
}
return 0;
}