#include <iostream>
#include <cstdlib>
#include <algorithm>
#include <cstdio>
#include <vector>
#include <cmath>
#include <cstring>
#include <cstring>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <string>
#include <climits>

using namespace std;

typedef long long ll;
typedef pair<int,int> ii;

char first[1001][1001];
char second[1001][1001];

int main() {
	int m,n;
	char f,garb;
	string s;
	cin>>n>>m>> garb>>f>>garb;
	while (n != 0 && m != 0 ) {
	//-------------------
	//first input
	int ffx = -1, ffy = -1;
	for (int i = 0; i<n; ++i) {
		for (int j = 0; j<m; ++j) {
	 	cin>>first[i][j];
	 	//first falcon pos
	 	if (first[i][j] == f && ffx == -1) { ffx = i; ffy = j; }
	 	}
	 }
	//--------------------
	//second input
	int fsx = -1, fsy = -1;
	for (int i = 0; i<n; ++i) {
		for (int j = 0; j<m; ++j) {
	 	cin>>second[i][j];
	 	//second falcon pos
	 	if (second[i][j] == f && fsx == -1) {fsx = i; fsy = j;}
	 	//erease falcon in first
	 	if (first[i][j] == f) first[i][j] = second[i][j];
		}
	}
	//------------------
	// output
	int dx = fsx - ffx;
	int dy = fsy - ffy;
	int x,y;
	//get falcon in background
	for (int i = 0; i<n; ++i) {
		for (int j = 0; j<m; ++j) {
			if (second[i][j] == f) {
				x = i + dx;
				y = j + dy;
				if (x < n && y < m && x > -1 && y > -1) first[x][y] = f;
			}
		}
	}
	//print image
	for (int i = 0; i<n; ++i) {
		for (int j = 0; j<m; ++j) {
				cout<<first[i][j];
		}
		cout<<"\n";
	}
	cin>>n>>m>>garb>>f>>garb;
	}//end of while;
	return 0;
}