#include <cstdlib>
#include <cstdio>
#include <cstring>

using namespace std;

int main () {
	
	for (; ; ) {
		char tmp[10];
		char line[1001];
		int nr;
		int nc;
		char x;
		scanf ("%d%d%c%c%c%s", &nr, &nc, &x, &x, &x, &tmp);
		//printf ("%d %d %c<<\n", nr, nc, x);
		if (nr == 0)
			break;


		
		char grid1[1000][1001];
		char grid2[1000][1001];
		char out[1000][1001];

		memset (out, 0, sizeof(out));

		for (int i = 0; i < nr; i++)
			scanf ("%s", grid1[i]);

		for (int i = 0; i < nr; i++)
			scanf ("%s", grid2[i]);

		int top1;
		for (int i = 0; i < nr; i++) {
			for (int  j = 0; j < nc; j++) {
				//printf ("%c", grid1[i][j]);
				if (grid1[i][j] == x) {
					top1 = i;
					goto next1;
				}
			}
			//printf ("\n");
		}
		next1:;
		
		int left1;
		for (int i = 0; i < nc; i++) {
			for (int  j = 0; j < nr; j++) {
				if (grid1[j][i] == x) {
					left1 = i;
					goto next2;
				}
			}
		}
		next2:;
		
		int top2;
		for (int i = 0; i < nr; i++) {
			for (int  j = 0; j < nc; j++) {
				if (grid2[i][j] == x) {
					top2 = i;
					goto next3;
				}
			}
		}
		next3:;

		int left2;
		for (int i = 0; i < nc; i++) {
			for (int  j = 0; j < nr; j++) {
				if (grid2[j][i] == x) {
					left2 = i;
					goto next4;
				}
			}
		}
		next4:;
		
		//printf ("%d %d %d %d <<\n", top1, top2, left1, left2);

		int vertical = top2 - top1;
		int horizontal = left2 - left1;

		//printf ("%d %d\n", vertical, horizontal);
		for (int i = 0; i < nr; i++) {
			for (int j = 0; j < nc; j++ {
				if (grid1[i][j] != x)
					out[i][j] = grid1[i][j];

				if (grid2[i][j] != x)
					out[i][j] = grid2[i][j];
			}
		}

		for (int i = 0; i < nr; i++) {
			for (int j = 0; j < nc; j++) {
				if (grid2[i][j] == x) {
					int row = i + vertical;
					int col = j + horizontal;

					if (0 <= row && row < nr && 0 <= col && col < nc)
						out[row][col] = x;
				}
			}
		}

		for (int i = 0; i < nr; i++)
			printf ("%s\n", out[i]);
		printf ("\n");

	}
	return 0;
}