#include using namespace std; typedef unsigned long long int ll; inline ll getSize(ll x) { ll num = 0; while(x) { num++; x /= 10; } return num; } inline ll manualPow(ll what, ll times) { if(what == 0) return 0; ll ret = 1; for(ll i = 1; i <= times; i++) ret *= what; return ret; } ll digs[30]; int main() { //freopen("test.in", "r", stdin); ll a, b; cin >> a >> b; if(a > 9) { cout << 0; return 0; } vector < ll > v; for(ll i = 1; i < 10; i++) { if(i >= a && i < b) { v.push_back(i); } } ll ans = 0; ll szB = getSize(b); for(ll i = 1; i < szB; i++) { ans += manualPow((ll)v.size(), i); } ll copB = b; for(ll i = szB; i > 0; i--) { digs[i] = copB % 10; copB /= 10; } for(ll i = 1; i <= szB; i++) { ll cnt = 0; for(ll j = 0; j < (ll)v.size(); j++) { if(v[j] < digs[i]) cnt++; } ans = ans + 1LL * cnt * manualPow((ll)v.size(), szB - i); bool ok = false; for(ll j = 0; j < (ll)v.size(); j++) { if(v[j] == digs[i]) ok = true; } if(ok == false) i = szB; } cout << ans << " "; return 0; }