#include<bits/stdc++.h>
using namespace std;
int a1[10],a2[10],b[10];
int qpow(int n){
if(n<0)return 0;
int sum=1;
while(n--)sum*=10;
return sum;
}
void f1(int n){
int s=1,m=0;
while(s*10<=n){
s*=10;
m++;
}
int k,t=s-1,ok=0;
for(k=0;k<m;k++)
a1[0]-=qpow(k);
while(1){
for(k=0;k<=9;k++)
a1[k]+=qpow(m-1)*m+b[k]*qpow(m);
if(ok)b[t/s%10]--;
if(t==n)return;
ok=1;
if(t+s<=n){
t+=s;
b[t/s%10]++;
}
else{
while(t+s>n){
b[(t+1)/s%10]++;
s/=10;
m--;
}
t+=s;
b[t/s%10]++;
}
}
return;
}
void f2(int n){
int s=1,m=0;
while(s*10<=n){
s*=10;
m++;
}
int k,t=s-1,ok=0;
for(k=0;k<m;k++)
a2[0]-=qpow(k);
while(1){
for(k=0;k<=9;k++)
a2[k]+=qpow(m-1)*m+b[k]*qpow(m);
if(ok)b[t/s%10]--;
if(t==n)return;
ok=1;
if(t+s<=n){
t+=s;
b[t/s%10]++;
}
else{
while(t+s>n){
b[(t+1)/s%10]++;
s/=10;
m--;
}
t+=s;
b[t/s%10]++;
}
}
return;
}
int main(){
int l,r,k;
while(scanf("%d%d",&l,&r)&&l&&r){
if(l>r){
int t=l;
l=r;
r=t;
}
memset(a1,0,sizeof(a1));
memset(a2,0,sizeof(a2));
memset(b,0,sizeof(b));
if(r>9)f1(r);
else{
for(k=1;k<=r;k++)
a1[k]++;
}
memset(b,0,sizeof(b));
l--;
if(l>9)f2(l);
else{
for(k=1;k<=l;k++)
a2[k]++;
}
for(k=0;k<=8;k++)
printf("%d ",a1[k]-a2[k]);
printf("%d\n",a1[9]-a2[9]);
}
return 0;
}