/*   @JUDGE_ID:   1705PZ   324   C */
#include <stdio.h>
#define SIZE 1000

int main(){
int i,j,n,n1,n10,n100,num;
int table[SIZE],table1[SIZE],count[10];
while(1){
	scanf("%d",&num);
	if(num == 0)
		break;
	for(i = 0;i < SIZE;i++){
		table[i] = 0;
		table1[i] = 0;
		}
	for(i = 0;i < 10;i++)
		count[i] = 0;
	table[0] = 1;
	for(i = 1;i <= num;i++){
		n = i;
		n1 = n % 10;
		n  /=  10;
		n10 = n % 10;
		n /= 10;
		n100 = n % 10;
		for(j = 0;j < (SIZE - 10);j++){
			table1[j] += table[j] * n1;
			table1[j + 1] += table[j] * n10;
			table1[j + 2] += table[j] * n100;
			}
		for(j = 0;j < (SIZE - 10);j++){
			table1[j + 1] += table1[j] / 10;
			table1[j] %= 10;
			}
		for(j = 0;j < SIZE;j++){
			table[j] = table1[j];
			table1[j] = 0;
			}
		}
	printf("%d! --\n",num);
	for(i = (SIZE - 1);i >= 0;i--)
		if(table[i] != 0)
			break;
	for(j = i;j >= 0;j--)
		count[table[j]]++;
	for(i = 0;i < 10;i++){
		if(i == 0 || i == 5)
			printf("   (%d)%5d",i,count[i]);
		else
			printf("    (%d)%5d",i,count[i]);
		if(i == 4 || i == 9)
			printf("\n");
		}
	}
return 0;
}
@END_OF_SOURCE_CODE
