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 <bits/stdc++.h>
using namespace std;

// <=50000
int a[20000];
int b[20000];
int res[40000];
int n,m;
int q=10000;
int main(){
	string s;
//	cin.tie(0);ios::sync_with_stdio(false);
	while(cin>>s){
		memset(a,0,sizeof(a));
		memset(b,0,sizeof(b));
		int fu=0;
		int k=1,t=0;
		n=m=1;
		if(s[0]=='-')fu^=1,s=s.substr(1,s.length()-1);
		for(int i=0;i<s.length();i++){
			a[n]+=(s[s.length()-i-1]-'0')*k;
			k=k*10;
			if(i%4==3||i+1==s.length()){
				k=1;n++;
			}
		}
		reverse(a+1,a+n);
		cin>>s;
		if(s[0]=='-')fu^=1,s=s.substr(1,s.length()-1);
		k=1;
		for(int i=0;i<s.length();i++){
			b[m]+=(s[s.length()-i-1]-'0')*k;
			k=k*10;
			if(i%4==3||i+1==s.length()){
				k=1;m++;
			}
		}
		reverse(b+1,b+m);
		n--;m--;
		for(int i=0;i<=n+m;i++)res[i]=0;
		if(fu&&!((n==1&&a[1]==0)||(m==1&&b[1]==0)))cout<<"-";
//		if(fu)cout<<"-";
		for(int i=n;i>0;i--){
			for(int j=m;j>0;j--){
				res[i+j]+=a[i]*b[j];
				if(res[i+j]>=q){
					res[i+j-1]+=res[i+j]/q;
					res[i+j]%=q;
				}
			}
		}
		for(int i=m+n;i>0;i--)if(res[i]>=q){
			res[i-1]+=res[i]/q;
			res[i]%=q;
		}
		bool ok=0;
		for(int i=1;i<=n+m;i++){
			if(ok){
				printf("%04d",res[i]);
				continue;
			}
			if(res[i]!=0||(i==n+m)){
				ok=1;
				printf("%d",res[i]);
				continue;
			}
		}cout<<endl;
	}
	
	return 0;
}





