/*
* 高精度乘法
*/
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
const int MAXN = 100005;
int A[MAXN], B[MAXN], ANS[MAXN];
int lenA, lenB, lenANS;
// 获取输入,并逆序保存到数组中,即 num[0] 存放个位数
void read(int num[], int &len) { // 加上"&"使得可以对传入的len值进行修改
string str;
cin >> str;
len = str.length();
for (int i=0; i<len; i++) {
num[i] = str[i] - '0';
}
reverse(num, num+len);
}
int main()
{
read(A, lenA); // 存入A
read(B, lenB); // 存入B
lenANS = lenA + lenB - 1;
for (int i=0; i<lenA; i++) {
for (int j=0; j<lenB; j++) {
ANS[i+j] += A[i]*B[j];
}
}
for (int i=0; i<lenANS; i++) { //把每一步的答案合并成最终的答案
ANS[i+1] += ANS[i]/10;
ANS[i] %= 10;
}
// 判断最高位有无进位
if (ANS[lenANS] > 0) {
lenANS++; // 最高位有进位,长度加一
}
// 输出结果
for (int i=lenANS-1; i>=0; i--) {
cout << ANS[i];
}
return 0;
}