import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Dive {
	public static void main(String[] args) throws IOException {
		
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		
		String line = "";

		boolean pop = true;
		
		while(!(line = in.readLine()).equals("0 0 ' '")) {
			
			if (!pop) {
				System.out.println();
				
			}
			pop = false;
			String string[] = line.split(" ");
			
			int radek = Integer.parseInt(string[0]);
			int sloupce = Integer.parseInt(string[1]);
			
			char c = string[2].charAt(1);
			
			char pole[][] = new char[radek][sloupce];
			char druhe_pole[][] = new char[radek][sloupce];
			char treti_pole[][] = new char[radek][sloupce];
			
			for (int i = 0; i < pole.length; i++) {
				String s = in.readLine();
				pole[i] = s.toCharArray();
			}
			in.readLine();
			for (int i = 0; i < druhe_pole.length; i++) {
				String s = in.readLine();
				druhe_pole[i] = s.toCharArray();
			}
			
			//vypis(treti_pole);
			for (int i = 0; i < treti_pole.length; i++) {
				for (int j = 0; j < treti_pole[i].length; j++) {
					if (druhe_pole[i][j] != c)
						treti_pole[i][j] = druhe_pole[i][j];
					else 
						treti_pole[i][j] = pole[i][j];
				}
			}

			//vypis(pole);
			
			int poleI = 0;
			int poleJ = 0;
			boolean nalezeno = false;
			for (int i = 0; i < pole.length; i++) {
				for (int j = 0; j < pole[i].length; j++) {
					if (pole[i][j] == c) {
						
						poleI = i;
						poleJ = j;
						
						//System.out.println(poleI);
						//System.out.println(poleJ);
						nalezeno = true;
						break;
					}
				}
				if (nalezeno) {
					break;
				}
			}
			
			
			
			int poleDruheI = 0;
			int poleDruheJ = 0;
			nalezeno = false;
			for (int i = 0; i < druhe_pole.length; i++) {
				for (int j = 0; j < druhe_pole[i].length; j++) {
					if (druhe_pole[i][j] == c) {
						poleDruheI = i;
						poleDruheJ = j;
						nalezeno = true;
						break;
					}
				}
				if (nalezeno) {
					break;
				}
			}
			/*
			System.out.println("---------------");
			System.out.println(poleI);
			System.out.println(poleJ);
			System.out.println("---------------");
			System.out.println(poleDruheI);
			System.out.println(poleDruheJ);
			System.out.println("---------------");
			*/
			
			int velkeI = poleDruheI - poleI;
			int velkeJ = poleDruheJ - poleJ;
			//System.out.println(velkeI + " "+ velkeJ);

			for (int i = 0; i < druhe_pole.length; i++) {
				for (int j = 0; j < druhe_pole[i].length; j++) {
					if (druhe_pole[i][j] == c) {
						int a = i + velkeI;
						int b = j + velkeJ;
						if (a >= 0 && a < treti_pole.length && b >= 0 && b < treti_pole[a].length)
							treti_pole[i + velkeI][j + velkeJ] = c;
					}
				}
			}
			
			/*for (int i = 0; i < druhe_pole.length; i++) {
				for (int j = 0; j < druhe_pole[i].length; j++) {
					System.out.print(treti_pole[i][j]);
				}
				System.out.println();
			}
			*/
			in.readLine();
			vypis(treti_pole);
			
		
		
		}
	}
	static void vypis(char pole[][])
	{
		for (int i = 0; i < pole.length; i++) {
			for (int j = 0; j < pole[i].length; j++) {
				System.out.print(pole[i][j]);
			}
			System.out.println();
		}
		
	}
}