#include <cstdio>
#include <iostream>
#include <vector>
#include <set>

using namespace std;

int main(){
	bool first = true;
  int M, N; char S;
  while ( scanf( " %d %d '%c'", &M, &N, &S ) == 3 && M != 0 && N != 0 ) {
	if ( !first ) {
		printf( "\n");
	} else {
		first = false;
	}
  
	set<pair<int, int> > sil1, sil2;
	vector<vector<char> > photo = vector<vector<char> >( M, vector<char>( N ) );
	
	for ( int m = 0; m < M; m++ ) {
		for ( int n = 0; n < N; n++ ) {
			char c;
			scanf( " %c", &c );
			if ( c != S ) {
				photo[ m ][ n ] = c;
			}
			
			if ( c == S ) {
				sil1.insert( make_pair( m, n ) );
			}
		}
	}
	
	for ( int m = 0; m < M; m++ ) {
		for ( int n = 0; n < N; n++ ) {
			char c;
			scanf( " %c", &c );
			if ( c != S ) {
				photo[ m ][ n ] = c;
			}
			
			if ( c == S ) {
				sil2.insert( make_pair( m, n ) );
			}
		}
	}
	
	pair<int, int> diff = make_pair( sil2.begin()->first - sil1.begin()->first, sil2.begin()->second - sil1.begin()->second );
	
	for ( set<pair<int, int> >::iterator it = sil2.begin(); it != sil2.end(); ++it ) {
		int m = it->first + diff.first;
		int n = it->second + diff.second;
		if ( m >= 0 && m < M && n >= 0 && n < N ) {			
			photo[ m ][ n ] = S;
		}
	}
	
	for ( int m = 0; m < M; m++ ) {
		for ( int n = 0; n < N; n++ ) {
			printf( "%c", photo[ m ][ n ] );
		}
		printf("\n");
	}	
  }
  
  return 0;
}