#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);
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgYmFzZSAgMTAwMDAKI2RlZmluZSBibG9ja1NpemUgNAoKdHlwZWRlZiB2ZWN0b3I8bGw+IGJpZ251bTsKCmJpZ251bSBhZGQoYmlnbnVtIGEsIGJpZ251bSBiKSB7CgliaWdudW0gYzsKCWMucmVzaXplKG1heChhLnNpemUoKSwgYi5zaXplKCkpKTsKCWEucmVzaXplKGMuc2l6ZSgpKTsKCWIucmVzaXplKGMuc2l6ZSgpKTsKCWxsIG1lbSA9IDA7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IGMuc2l6ZSgpOyArK2kpewogICAgICAgIGxsIHN1bSA9IG1lbSArIGFbaV0gKyBiW2ldOwogICAgCWNbaV0gPSBzdW0lYmFzZTsKICAgIAltZW0gPSBzdW0vYmFzZTsKICAgIH0KICAgIGlmKG1lbSA+IDApIGMucHVzaF9iYWNrKG1lbSk7CiAgICByZXR1cm4gYzsKfQoKYmlnbnVtIHN1YnRyYWN0KGJpZ251bSBhLCBiaWdudW0gYikgewoJYmlnbnVtIGM7CgljLnJlc2l6ZShtYXgoYS5zaXplKCksIGIuc2l6ZSgpKSk7CgkvL1Jlc2l6ZSDEkeG7gyB0aMOqbSAwIHbDoG8gY3Xhu5FpIGNobyBuaOG7r25nIHPhu5EgY8OzIMSR4buZIGTDoGkga2jDoWMgbmhhdQoJYS5yZXNpemUoYy5zaXplKCkpOwoJYi5yZXNpemUoYy5zaXplKCkpOwoJbGwgbWVtID0gMDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYy5zaXplKCk7ICsraSl7CiAgICAgICAgbGwgc3ViID0gYVtpXSAtIGJbaV0gLSBtZW07CiAgICAgICAgaWYoc3ViIDwgMCl7CiAgICAgICAgCW1lbSA9IDE7CiAgICAgICAgCXN1YiArPSBiYXNlOwogICAgICAgIH1lbHNlCiAgICAgICAgCW1lbSA9IDA7CiAgICAJY1tpXSA9IHN1YjsKICAgIH0KICAgIC8vbG/huqFpIGLhu48gY8OhYyBz4buRIDAg4bufIMSR4bqndQogICAgd2hpbGUoYy5zaXplKCk+MSAmJiBjW2Muc2l6ZSgpLTFdID09IDApIGMucG9wX2JhY2soKTsKICAgIHJldHVybiBjOwp9CgpiaWdudW0gbXVsdGlwbGUoYmlnbnVtIGEsIGxsIGIpIHsKCWJpZ251bSBjOwoJYy5yZXNpemUoYS5zaXplKCkpOwoJbGwgbWVtID0gMDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYy5zaXplKCk7ICsraSl7CiAgICAgICAgbGwgbXVsID0gbWVtICsgYVtpXSpiOwogICAgCWNbaV0gPSBtdWwlYmFzZTsKICAgIAltZW0gPSBtdWwvYmFzZTsKICAgIH0KICAgIHdoaWxlKG1lbT4wKXsKICAgIAljLnB1c2hfYmFjayhtZW0lYmFzZSk7CiAgICAJbWVtLz1iYXNlOwogICAgfQogICAgcmV0dXJuIGM7Cn0KCmJpZ251bSB0b0JpZ251bShzdHJpbmcgYSl7CgliaWdudW0gYzsKCWMuY2xlYXIoKTsKCWZvcihpbnQgaSA9IGEuc2l6ZSgpLTE7IGkgPj0wOyBpLT1ibG9ja1NpemUpewoJCWMucHVzaF9iYWNrKHN0b2xsKGEuc3Vic3RyKG1heCgwLCBpLWJsb2NrU2l6ZSsxKSwgbWluKGJsb2NrU2l6ZSwgaSsxKSkpKTsKCX0KCXJldHVybiBjOwp9CgpzdHJpbmcgdG9TdHJpbmcoYmlnbnVtIGEpewoJc3RyaW5nIHMgPSAiIjsKCWZvcihpbnQgaSA9IGEuc2l6ZSgpLTE7IGkgPj0wOyBpLS0pewoJCXN0cmluZyB4ID0gdG9fc3RyaW5nKGFbaV0pOwoJCXdoaWxlKGkhPWEuc2l6ZSgpLTEgJiYgeC5zaXplKCk8YmxvY2tTaXplKSB4ID0gIjAiK3g7CgkJcz1zK3g7Cgl9CglyZXR1cm4gczsKfQoKaW50IG1haW4oKSB7CglzdHJpbmcgYSxiOwoJY2luPj5hPj5iOwoJYmlnbnVtIEEgPSB0b0JpZ251bShhKTsKCWJpZ251bSBCID0gdG9CaWdudW0oYik7Ci8vCWJpZ251bSBDID0gYWRkKEEsQik7Ci8vCSBiaWdudW0gQyA9IHN1YnRyYWN0KEEsQik7CgliaWdudW0gQyA9IG11bHRpcGxlKEEsMTIzNDUpOwoJY291dDw8dG9TdHJpbmcoQyk7Cn0=