#include<iostream> #include<cstdio> usingnamespace std; typedeflonglong lnt; lnt a, b, pow[20]; structnode {lnt c[10];} f[20][10]; node operator + (node a, node b) {node ret; for (int i = 0; i < 10; i++) ret.c[i] = a.c[i]+b.c[i]; return ret;} voidinit(){pow[1] = 1; for (int i = 2; i <= 15; i++) pow[i] = pow[i-1]*10;} node calc(lnt x){ node ret; for (int i = 0; i < 10; i++) ret.c[i] = 0; if (!x) {ret.c[0] = 1; return ret;} int len = 15; while (x < pow[len]) len--; for (int i = 1; i < len; i++) for (int j = 1; j < 10; j++) ret = ret+f[i][j]; ret.c[0]++; int cur = x/pow[len]; for (int i = 1; i < cur; i++) ret = ret+f[len][i]; x %= pow[len], ret.c[cur] += x+1; for (int i = len-1; i; i--) { cur = x/pow[i]; for (int j = 0; j < cur; j++) ret = ret+f[i][j]; x %= pow[i], ret.c[cur] += x+1; } return ret; } intmain(){ init(), scanf("%lld%lld", &a, &b); for (int i = 0; i < 10; i++) f[1][i].c[i] = 1; for (int i = 2; i <= 12; i++) for (int j = 0; j < 10; j++) for (int k = 0; k < 10; k++) f[i][k] = f[i][k]+f[i-1][j], f[i][k].c[k] += pow[i-1]; node ansa = calc(a-1), ansb = calc(b); for (int i = 0; i < 10; i++) {printf("%lld", ansb.c[i]-ansa.c[i]); if (i != 9) printf(" ");} return0; }