#include<stdio.h>
#include<string.h>
char a[4][100];
char s[402][27];
int b[26];
int max(int b[],int n){
int i,ti=0;
for(i=0;i<n;i++){
if(b[i]>b[ti]){
ti=i;
}
}
return b[ti];
}
int main(){
fgets(a[0],100,stdin);
fgets(a[1],100,stdin);
fgets(a[2],100,stdin);
fgets(a[3],100,stdin);
int n,i,j,m,tp;
for(i=0;i<strlen(a[0]);i++){
if(a[0][i]>='A'&&a[0][i]<='Z'){
m=a[0][i]-'A';
b[m]++;
}
}
for(i=0;i<strlen(a[1]);i++){
if(a[1][i]>='A'&&a[1][i]<='Z'){
m=a[1][i]-'A';
b[m]++;
}
}
for(i=0;i<strlen(a[2]);i++){
if(a[2][i]>='A'&&a[2][i]<='Z'){
m=a[2][i]-'A';
b[m]++;
}
}
for(i=0;i<strlen(a[3]);i++){
if(a[3][i]>='A'&&a[3][i]<='Z'){
m=a[3][i]-'A';
b[m]++;
}
}
n=max(b,26);
for(i=0;i<26;i++){
s[n][i]='A'+i;
}
tp=b[25];
for(i=25;i>=0;i--){
if(b[i]!=0){
for(j=n-1;j>=n-b[i];j--){
s[j][i]= '*';
}
}
if(b[i]<tp){
for(j=n-b[i]-1;j>=n-tp;j--){
s[j][i]=' ';
}
}
if(b[i]>tp) tp=b[i];
}
for(i=0;i<=n;i++){
for(j=0;j<26;j++){
if(s[i][j]!='\0'){
printf("%c",s[i][j]);
}
if(s[i][j]=='\0') break;
}
if(i!=n) printf("\n");
}
return 0;
}