#include #include #include #define lint long long int using namespace std; lint dp[20][2]; lint cate[20][2]; lint compute(int n) { if (n == 0) return 0; memset(dp, 0, sizeof dp); int v[105]; int sz = 0; while (n) { v[++ sz] = n % 10; n /= 10; } reverse(v + 1, v + sz + 1); n = sz; cate[0][0] = 1; for (int i = 0; i < n; ++ i) { //Daca plec cu dp[i][0] for (int j = 0; j <= v[i + 1]; ++ j) if (i < n - 1 || (j & 1)){ cate[i + 1][j < v[i + 1]] += cate[i][0]; dp[i + 1][j < v[i + 1]] += dp[i][0] + cate[i][0] * j; } //Daca plec cu dp[i][1] for (int j = 0; j <= 9; ++ j) if (i < n - 1 || (j & 1)) { cate[i + 1][1] += cate[i][1]; dp[i + 1][1] += dp[i][1] + cate[i][1] * j; } } return dp[n][0] + dp[n][1]; } int main() { int a, b; cin >> a >> b; cout << compute(b) - compute(a - 1) << '\n'; return 0; }