#include <bits/stdc++.h>
using namespace std;
long long ta,tb,cnt1[14],cnt2[14],a[17],b[17],cnta,cntb,k[25]={0,10};
int main()
{
cin>>ta>>tb;
ta=ta-1;
for (long long i=2;i<=20;i++)
{
k[i]=k[i-1]*10;
}
while (ta)
{
a[++cnta]=1ll*(ta%10);
ta=ta/10;
}
while (tb)
{
b[++cntb]=1ll*(tb%10);
tb=tb/10;
}
for (long long i=1;i<=cnta/2;i++)
{
swap (a[i],a[cnta-i+1]);
}
for (long long i=1;i<=cntb/2;i++)
{
swap (b[i],b[cntb-i+1]);
}
for (long long i=1;i<=cnta;i++)
{
for (long long j=1;j<i;j++)
{
cnt1[a[j]]=cnt1[a[j]]+a[i]*k[cnta-i];
}
for (long long j=1;j<a[i];j++)
{
cnt1[j]=cnt1[j]+k[cnta-i];
}
if (i!=1&&a[i]>0)
{
cnt1[0]=cnt1[0]+k[cnta-i];
}
if (i<cnta)
{
for (long long j=1;j<=9;j++)
{
cnt1[j]=cnt1[j]+k[cnta-i-1]*(cnta-i)*a[i];
}
if (i!=1)
{
cnt1[0]=cnt1[0]+k[cnta-i-1]*a[i]*(cnta-i);
}
}
if (i==1)
{
if (cnta>=2)
{
cnt1[0]=cnt1[0]+(a[1]-1)*(cnta-1)*k[cnta-2];
}
for (long long j=2;j<=cnta;j++)
{
cnt1[0]=cnt1[0]+9*(cnta-j)*k[cnta-j-1];
}
}
}
for (long long i=1;i<=cntb;i++)
{
for (long long j=1;j<i;j++)
{
cnt2[b[j]]=cnt2[b[j]]+b[i]*k[cntb-i];
}
for (long long j=1;j<b[i];j++)
{
cnt2[j]=cnt2[j]+k[cntb-i];
}
if (i!=1&&b[i]>0)
{
cnt2[0]=cnt2[0]+k[cntb-i];
}
if (i<cntb)
{
for (long long j=1;j<=9;j++)
{
cnt2[j]=cnt2[j]+k[cntb-i-1]*(cntb-i)*b[i];
}
if (i!=1)
{
cnt2[0]=cnt2[0]+k[cntb-i-1]*b[i]*(cntb-i);
}
}
if (i==1)
{
if (cntb>=2)
{
cnt2[0]=cnt2[0]+(b[1]-1)*(cntb-1)*k[cntb-2];
}
for (long long j=2;j<=cntb;j++)
{
cnt2[0]=cnt2[0]+9*(cntb-j)*k[cntb-j-1];
}
}
}
for (long long i=0;i<=9;i++)
{
cout<<cnt2[i]-cnt1[i]<<" ";
}
return 0;
}