/**
* Author: Sergey Kopeliovich (Burunduk30@gmail.com)
* Date: 2013.10.31
*/
import java.util.*;
import java.io.*;
public class mul_sk_n2 {
BufferedReader in;
PrintWriter out;
char[] s, t;
int[] res, a;
public void mul( int k, int[] res, int rp, int sp, int tp, int ap ) {
if (k == 1) {
res[rp + 0] = sp < s.length && tp < t.length ? (s[sp] - '0') * (t[tp] - '0') : 0;
res[rp + 1] = 0;
return;
}
int k1 = k / 2;
mul(k1, res, rp, sp, tp, ap);
mul(k1, res, rp + k, sp + k1, tp + k1, ap);
for (int t = 0; t < 2; t++) {
mul(k1, a, ap, sp + (t == 0 ? k1 : 0), tp + (t == 1 ? k1 : 0), ap + k);
for (int i = 0; i < k; i++) {
res[rp + k1 + i] += a[ap + i];
}
}
}
public void out( int[] a ) {
int i = a.length - 1;
while (i > 0 && a[i] == 0) {
i--;
}
while (i >= 0) {
System.out.print(a[i--]);
}
}
public char[] read() throws IOException {
char[] s = in.readLine().toCharArray();
for (int i = 0, n = s.length; 2 * i < n; i++) {
char tmp = s[i];
s[i] = s[n - i - 1];
s[n - i - 1] = tmp;
}
return s;
}
public void run() throws IOException {
in = new BufferedReader(new InputStreamReader(System.in));
out = new PrintWriter(System.out);
s = read();
t = read();
int k = 1;
while (k < Math.max(s.length, t.length)) {
k <<= 1;
}
res = new int[k * 2];
a = new int[k * 2];
mul(k, res, 0, 0, 0, 0);
for (int i = 0; i + 1 < k * 2; i++) {
res[i + 1] += res[i] / 10;
res[i] %= 10;
}
out(res);
out.close();
}
static public void main(String[] args) throws Exception {
new mul_sk_n2().run();
}
}