/*   @JUDGE_ID:   1705PZ   159   C */
#include <stdio.h>
#include <string.h>

int big(int x,int y){
	if(x >= y)
		return x;
	else
		return y;
	}

int main(){
char s1[100],s2[100],s3[100],s4[100];
char table[25][25];
int i,j,temp,check;
int l1,l2,l3,l4,p1,p2,p3,p4;
while(1){
	scanf("%s",s1);
	if(s1[0] == '#')
		break;
	scanf("%s %s %s",s2,s3,s4);
	l1 = strlen(s1);
	l2 = strlen(s2);
	l3 = strlen(s3);
	l4 = strlen(s4);
	temp = 0;
	check = 0;
	for(i = 0;i < l1;i++){
		for(j = 0;j < l2;j++)
			if(s1[i] == s2[j]){
				temp = 1;
				check++;
				break;
				}
		if(temp == 1)
			break;
		}
	p1 = i;
	p2 = j;
	temp = 0;
	for(i = 0;i < l3;i++){
		for(j = 0;j < l4;j++)
			if(s3[i] == s4[j]){
				temp = 1;
				check++;
				break;
				}
		if(temp == 1)
			break;
		}
	p3 = i;
	p4 = j;
	for(i = 0;i < 25;i++)
		for(j = 0;j < 25;j++)
			table[i][j] = ' ';
	for(i = 0;i < l1;i++)
		table[big(p2,p4)][i] = s1[i];
	for(i = 0;i < l2;i++)
		table[big(p2,p4) - p2 + i][p1] = s2[i];
	for(i = 0;i < l3;i++)
		table[big(p2,p4)][l1 + 3 + i] = s3[i];
	for(i = 0;i < l4;i++)
		table[big(p2,p4) - p4 + i][l1 + 3 + p3] = s4[i];
	if(check == 2){
		for(i = 0;i < 25;i++){
			for(j = 23;j >= 0;j--){
				if(table[i][j] != ' ')
					break;
				else if(table[i][j] == ' ')
					table[i][j + 1] = '\0';
				if(j == 0)
					table[i][j] = -1;
				}
			if(table[i][0] != -1)
				printf("%s\n",table[i]);
			}
		}
	else
		printf("unable to make two crosses\n");
	printf("\n");
	}
return 0;
}
@END_OF_SOURCE_CODE
