Multiplication of Big Integers

Given two integers $A$ and $B$, compute the product, $A \times B$.

Input

Two integers $A$ and $B$ separated by a space character are given in a line.

Output

Print the product in a line.

Constraints

* $-1 \times 10^{1000} \leq A, B \leq 10^{1000}$



Sample Input 1


5 8


Sample Output 1


40


Sample Input 2


100 25


Sample Output 2


2500


Sample Input 3


-1 0


Sample Output 3


0


Sample Input 4


12 -3


Sample Output 4


-36






Example

Input

5 8


Output

40
#include<iostream>
#include<list>
#include<string>
using namespace std;

list<int> n, m, result, X;
int x;
int nminus = 0, mminus = 0;
int nO = 0, mO = 0;

void input(){
    string N, M;
    cin >> N >> M;
    if (N[0] == '-') nminus = 1;
    if (M[0] == '-') mminus = 1;
    for(int i = nminus; i < N.length(); i++) n.push_front(N[i] - '0');
    if (N[nminus] == '0') nO = 1;
    for(int i = mminus; i < M.length(); i++) m.push_front(M[i] - '0');
    if (M[mminus] == '0') mO = 1;
}

void computemult(list<int> *n, list<int> *m) {
    if ((*m).empty()) {
        while(!(X.empty())){
            x = x + *(X.begin());
            result.push_front(x % 10);
            x = x / 10;
            X.pop_front();
        }
        if (x != 0)  result.push_front(x);
        return;
    }
    list<int>::iterator itn = (*n).begin();
    list<int>::iterator itX = X.begin();
    int M = *((*m).begin());
    while(itn != (*n).end()) {
        x = M * *itn + *itX + x;
        *itX = x % 10;
        x = x / 10;
        itn++; itX++;
    }
    if (x != 0) *itX = x;
    x = 0;
    result.push_front(*(X.begin()));
    X.pop_front();
    (*m).pop_front();
    computemult(n, m);
    return;
}

int main(void){
    input();
    if (nO + mO > 0) {
        cout << 0 << endl;
        return 0;
    }
    X.resize(n.size() + m.size() + 1, 0);
    if(nminus != mminus) cout << "-";
    computemult(&n, &m);
    while(*(result.begin()) == 0) result.pop_front();
    while(!(result.empty())){
        cout << *(result.begin());
        result.pop_front();
    }
    cout << endl;
    return 0;
}

