#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#define fast cin.tie(0); cin.sync_with_stdio(0);
#define ll long long
#define ull unsigned long long
#define ld long double
#define oo (ll)1e9
#define OO (ll)1e18
#define PI 3.14159265359
#define ordered_set tree<pair<ll,ll>, null_type, less<pair<ll,ll>>, rb_tree_tag, tree_order_statistics_node_update>
using namespace std;
using namespace __gnu_pbds;
const ll mod = 1e9 + 7;
const ll MOD = 998244353;
const int MX = 2e2 + 5;
int t = 1;
// Here We Go! //
ll refl(ll x)
{
string r = to_string(x);
string res = "";
int n = r.size();
for(int i = 0 ; i < n ; i++) {
int d = r[i] - '0';
d = 9 - d;
res += char(d + '0');
}
return stoll(res);
}
void upize(ll &l , ll limit)
{
ll ret = 1;
while(ret * 10 < limit) ret *= 10;
l = max(l , ret);
}
void downize(ll &r ,ll l)
{
ll ret = 1;
while(ret < r) ret *= 10;
if(ret == r){
cout << r * refl(r);
exit(0);
}
ll mid = ret / 2;
r = min(r , max(l , mid));
}
void solve()
{
ll l , r;
cin >> l >> r;
ll mx = 0;
ll R = r;
downize(r , l);
upize(l , r);
while(l <= r){
ll mid = (l + r) >> 1;
ll curMx = mid * refl(mid);
if(curMx > mx){
mx = curMx;
l = mid + 1;
}
else r = mid - 1;
}
cout << mx << "\n";
}
int main()
{
fast
// freopen("input.txt" , "r" , stdin);
// freopen("output.txt" , "w" , stdout);
// cin >> t;
while(t--)
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxleHQvcGJfZHMvYXNzb2NfY29udGFpbmVyLmhwcD4KI2RlZmluZSBmYXN0IGNpbi50aWUoMCk7IGNpbi5zeW5jX3dpdGhfc3RkaW8oMCk7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgdWxsIHVuc2lnbmVkIGxvbmcgbG9uZwojZGVmaW5lIGxkIGxvbmcgZG91YmxlCiNkZWZpbmUgb28gKGxsKTFlOQojZGVmaW5lIE9PIChsbCkxZTE4CiNkZWZpbmUgUEkgMy4xNDE1OTI2NTM1OQojZGVmaW5lIG9yZGVyZWRfc2V0IHRyZWU8cGFpcjxsbCxsbD4sIG51bGxfdHlwZSwgbGVzczxwYWlyPGxsLGxsPj4sIHJiX3RyZWVfdGFnLCB0cmVlX29yZGVyX3N0YXRpc3RpY3Nfbm9kZV91cGRhdGU+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIG5hbWVzcGFjZSBfX2dudV9wYmRzOwpjb25zdCBsbCBtb2QgPSAxZTkgKyA3Owpjb25zdCBsbCBNT0QgPSA5OTgyNDQzNTM7CmNvbnN0IGludCBNWCA9IDJlMiArIDU7CmludCB0ID0gMTsKLy8gSGVyZSBXZSBHbyEgLy8KbGwgcmVmbChsbCB4KQp7CiAgICBzdHJpbmcgciA9IHRvX3N0cmluZyh4KTsKICAgIHN0cmluZyByZXMgPSAiIjsKICAgIGludCBuID0gci5zaXplKCk7CiAgICBmb3IoaW50IGkgPSAwIDsgaSA8IG4gOyBpKyspIHsKICAgICAgICBpbnQgZCA9IHJbaV0gLSAnMCc7CiAgICAgICAgZCA9IDkgLSBkOwogICAgICAgIHJlcyArPSBjaGFyKGQgKyAnMCcpOwogICAgfQogICAgcmV0dXJuIHN0b2xsKHJlcyk7Cn0Kdm9pZCB1cGl6ZShsbCAmbCAsIGxsIGxpbWl0KQp7CiAgICBsbCByZXQgPSAxOwogICAgd2hpbGUocmV0ICogMTAgPCBsaW1pdCkgcmV0ICo9IDEwOwogICAgbCA9IG1heChsICwgcmV0KTsKfQp2b2lkIGRvd25pemUobGwgJnIgLGxsIGwpCnsKICAgIGxsIHJldCA9IDE7CiAgICB3aGlsZShyZXQgPCByKSByZXQgKj0gMTA7CiAgICBpZihyZXQgPT0gcil7CiAgICAgICAgY291dCA8PCByICogcmVmbChyKTsKICAgICAgICBleGl0KDApOwogICAgfQogICAgbGwgbWlkID0gcmV0IC8gMjsKICAgIHIgPSBtaW4ociAsIG1heChsICwgbWlkKSk7Cn0Kdm9pZCBzb2x2ZSgpCnsKICAgIGxsIGwgLCByOwogICAgY2luID4+IGwgPj4gcjsKICAgIGxsIG14ID0gMDsKICAgIGxsIFIgPSByOwogICAgZG93bml6ZShyICwgbCk7CiAgICB1cGl6ZShsICwgcik7CiAgICB3aGlsZShsIDw9IHIpewogICAgICAgIGxsIG1pZCA9IChsICsgcikgPj4gMTsKICAgICAgICBsbCBjdXJNeCA9IG1pZCAqIHJlZmwobWlkKTsKICAgICAgICBpZihjdXJNeCA+IG14KXsKICAgICAgICAgICAgbXggPSBjdXJNeDsKICAgICAgICAgICAgbCA9IG1pZCArIDE7CiAgICAgICAgfQogICAgICAgIGVsc2UgciA9IG1pZCAtIDE7CiAgICB9CiAgICBjb3V0IDw8IG14IDw8ICJcbiI7Cn0KaW50IG1haW4oKQp7CiAgICBmYXN0Ci8vICAgIGZyZW9wZW4oImlucHV0LnR4dCIgLCAiciIgLCBzdGRpbik7Ci8vICAgIGZyZW9wZW4oIm91dHB1dC50eHQiICwgInciICwgc3Rkb3V0KTsKLy8gICAgY2luID4+IHQ7CiAgICB3aGlsZSh0LS0pCiAgICAgICAgc29sdmUoKTsKICAgIHJldHVybiAwOwp9Cg==