#include <bits/stdc++.h>

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;
}