#include <iostream>
#include <algorithm>
#include <cstring>

#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);
    memset(cate, 0, sizeof cate);

    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 sum_cif(int n) {
    int ans = 0;
    while (n) {
        ans += (n % 10);
        n /= 10;
    }
    return ans;
}

int brut(int n) {
    int ans = 1;
    for (int i = 1; i <= n; i += 2)
        ans += sum_cif(i);

    return ans;
}

int main()
{
    int a, b;
    cin >> a >> b;

    cout << compute(b) - compute(a - 1) << '\n';
    return 0;
}