#include <string>
#include <iostream>
#include <algorithm>
typedef long long lint;
const int N = 15, MAX = 10;
std::string a, b;
lint numa, numb, f[MAX][N];
std::string change(lint num) {
std::string res = std::to_string(num) + " ";
std::reverse(res.begin(), res.end());
return res;
}
lint dp(const std::string n, lint pos, int num, bool lim, bool zero) {
if (!pos) return 0;
if (!lim && !zero && ~f[num][pos]) return f[num][pos];
lint res = 0; int t = n[pos] - '0';
for (int i = 0; i <= (lim ? t : 9); ++i) {
if (num == i) {
if (i == 0) res += !zero;
else ++res;
}
res += dp(n, pos - 1, num, lim & i == t, zero & !i);
}
if (!lim && !zero) f[num][pos] = res;
return res;
}
int main() {
std::cin >> numa >> numb, --numa;
a = change(numa), b = change(numb);
for (int i = 0; i < 10; ++i) {
std::cout << dp(b, b.size() - 1, i, 1, 1) - dp(a, a.size() - 1, i, 1, 1) << " ";
}
std::cout << std::endl;
return 0;
}