#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
int ans[10];
int zeros[10];
int tmpans[10];
int tmpn[10];
int func(int rank){return rank*pow(10,rank-1);}voidcount(int n){
int rank=log10(n);
int store_rank=rank;
int zero=zeros[rank];
int level=n/pow(10,rank);if(rank==0){
int temp=func(rank+1);for(int i=1;i<=n;i++){
ans[i]=temp;}}else{
int temp=func(rank);
temp=temp*level;for(int i=0;i<10;i++){
ans[i]=temp;}for(int j=0;j<level;j++){
ans[j]+=pow(10,rank);}
int tmp;
int count=0;
tmpans[count]=level;while(rank>0){
n=(n-level*pow(10,rank));
level=n/pow(10,rank-1);
rank-=1;
tmp=func(rank);
tmp=level*tmp;for(int i=0;i<10;i++){
ans[i]+=tmp;}for(int j=0;j<level;j++){
ans[j]+=pow(10,rank);}
tmpn[count]=n+1;
count++;
tmpans[count]=level;}
tmpn[store_rank]=1;}for(int i=store_rank;i>=0;i--){
int number=tmpans[i];
ans[number]+=tmpn[i];}if(store_rank>0){
ans[0]-=zero;}for(int i=0;i<10;i++){
cout<<i<<":"<<ans[i]<<endl;}}
int main(){for(int i=0;i<10;i++){if(i==0){
zeros[i]=pow(10,i);}else{
zeros[i]=zeros[i-1]+pow(10,i);}}
int n;
cin>>n;count(n);return0;}