#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
//英语 抄博友程序 高精度计算
int da[1000];
int hs[10];
int main()
{
while(1)
{
memset(da,0,sizeof(da));
memset(hs,0,sizeof(hs));
int n;
cin>>n;
if(n==0)
{
break;
}
da[0]=1;
for(int i=2;i<=n;i++)
{
int c=0;
for(int j=0;j<1000;j++)
{
int t=da[j]*i+c;
c=t/10;
da[j]=t%10;
}
}
int i;
for(i=1000-1;i>=0;i--)
{
if(da[i]!=0)
{
break;
}
}
if(i<0)
{
i=0;
}
int len=i+1;
for(int i=0;i<len;i++)
{
hs[da[i]]++;
}
printf("%d! --\n",n);
printf(" (0)%5d (1)%5d (2)%5d (3)%5d (4)%5d\n",hs[0],hs[1],hs[2],hs[3],hs[4]);
printf(" (5)%5d (6)%5d (7)%5d (8)%5d (9)%5d\n",hs[5],hs[6],hs[7],hs[8],hs[9]);
}
return 0;
}