#include<bits/stdc++.h>
using namespace std;

#define ll long long
#define base  10000
#define blockSize 4

typedef vector<ll> bignum;

bignum add(bignum a, bignum b) {
	bignum c;
	c.resize(max(a.size(), b.size()));
	a.resize(c.size());
	b.resize(c.size());
	ll mem = 0;
    for (int i = 0; i < c.size(); ++i){
        ll sum = mem + a[i] + b[i];
    	c[i] = sum%base;
    	mem = sum/base;
    }
    if(mem > 0) c.push_back(mem);
    return c;
}

bignum subtract(bignum a, bignum b) {
	bignum c;
	c.resize(max(a.size(), b.size()));
	//Resize để thêm 0 vào cuối cho những số có độ dài khác nhau
	a.resize(c.size());
	b.resize(c.size());
	ll mem = 0;
    for (int i = 0; i < c.size(); ++i){
        ll sub = a[i] - b[i] - mem;
        if(sub < 0){
        	mem = 1;
        	sub += base;
        }else
        	mem = 0;
    	c[i] = sub;
    }
    //loại bỏ các số 0 ở đầu
    while(c.size()>1 && c[c.size()-1] == 0) c.pop_back();
    return c;
}

bignum multiple(bignum a, ll b) {
	bignum c;
	c.resize(a.size());
	ll mem = 0;
    for (int i = 0; i < c.size(); ++i){
        ll mul = mem + a[i]*b;
    	c[i] = mul%base;
    	mem = mul/base;
    }
    while(mem>0){
    	c.push_back(mem%base);
    	mem/=base;
    }
    return c;
}

bignum toBignum(string a){
	bignum c;
	c.clear();
	for(int i = a.size()-1; i >=0; i-=blockSize){
		c.push_back(stoll(a.substr(max(0, i-blockSize+1), min(blockSize, i+1))));
	}
	return c;
}

string toString(bignum a){
	string s = "";
	for(int i = a.size()-1; i >=0; i--){
		string x = to_string(a[i]);
		while(i!=a.size()-1 && x.size()<blockSize) x = "0"+x;
		s=s+x;
	}
	return s;
}

int main() {
	string a,b;
	cin>>a>>b;
	bignum A = toBignum(a);
	bignum B = toBignum(b);
//	bignum C = add(A,B);
//	 bignum C = subtract(A,B);
	bignum C = multiple(A,12345);
	cout<<toString(C);
}