#include<iostream>
#include<vector>
#include<deque>
#include<algorithm>
#define _USE_MATH_DEFINES
#include<cmath>
#include<cstdlib>
#include<string>

using namespace std;

int main() {

    int M,N;
    string CI;
    char C;
    char O[1007][1007];

    cin >> M >> N >> CI;
    C = (char)CI[1];
    while(M > 0 && N >0) {
        vector<string> A(M,"");
        vector<string> B(M,"");

        int fx, fy, nfx, nfy;
        fx = -1;
        fy = -1;
        nfx = -1;
        nfy = -1;

        string s;
        for(int i = 0; i < M; ++i) {
            cin >> s;
            A[i] = s;

            if(fx == -1) {
            for(int j = 0; j < N; ++j) {
                if(A[i][j] == C) {
                    fx=i;
                    fy=j;
                    break;
                }
            }
            }
        }


        for(int i = 0; i < M; ++i) {
            cin >> s;
            B[i] = s;

            if(nfx == -1) {
            for(int j = 0; j < N; ++j) {
                if(B[i][j] == C) {
                    nfx=i;
                    nfy=j;
                    break;
                }
            }
            }
        }

        for(int i = 0; i < M; ++i) {
        for(int j = 0; j < N; ++j) {
            if(A[i][j] == C) {
                O[i][j] = B[i][j];

            } else {
                O[i][j] = A[i][j];
            }

        }
        }

        for(int i = 0; i < M; ++i) {
        for(int j = 0; j < N; ++j) {
            if(B[i][j] == C) {
                if(i-fx+nfx >= 0 && i-fx+nfx<M) {
                if(j-fy+nfy >= 0 && j-fy+nfy<N) {
                    O[i-fx+nfx][j-fy+nfy] = C;
                }
                }
            }
        }
        }

        for(int i = 0; i < M; ++i) {
        for(int j = 0; j < N; ++j) {
            cout << O[i][j];
        }
        cout << endl;
        }
        cout << endl;


        cin >> M >> N >> CI; C = CI[1];
    }

    return 0;
}