/*
分析:
这题……真的很蛋疼。。。
不能输出多余的空格,比如输入是:
A
B
C
D
那么输出是:* * * *\n,注意了,从E开始的空格就不能输
出了……否则就PE了。。。
2012-07-16
*/
#include"stdio.h"
#include"string.h"
int main()
{
int hash[26];
int max;
int i,l;
int f;
char str[4][111];
while(gets(str[0]))
{
memset(hash,0,sizeof(hash));
for(i=1;i<4;i++) gets(str[i]);
for(i=0;i<4;i++)
for(l=0;str[i][l];l++)
{
if('A'<=str[i][l]&&str[i][l]<='Z') hash[str[i][l]-'A']++;
}
max=0;
for(i=0;i<26;i++) if(hash[i]>max) max=hash[i];
while(max)
{
if(hash[0]>=max)
{
printf("*");
f=0;
for(i=1;i<26;i++) if(hash[i]>=max) {f=1;break;}
if(f==0) {printf("\n");max--;continue;}
}
else
{
f=0;
for(i=1;i<26;i++) if(hash[i]>=max) {f=1;break;}
if(f==0) {printf("\n");max--;continue;}
else printf(" ");
}
for(i=1;i<26;i++)
{
if(hash[i]>=max)
{
printf(" *");
f=0;
for(l=i+1;l<26;l++) if(hash[l]>=max) {f=1;break;}
if(f==0) break;
}
else printf(" ");
}
printf("\n");
max--;
}
printf("A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\n");
}
return 0;
}