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