
import java.util.*;

public class grille {
	public static void main (String[] args){
		Scanner sc = new Scanner(System.in);
		int size;
		while((size = sc.nextInt()) != 0){
			sc.nextLine();
			boolean [][] sifra = new boolean[size][size];
			String [][] zprava = new String[size][size];
			
			for (int i = 0; i < size; i++) {
				String radek = sc.nextLine().trim();
				
				//System.out.println(radek);
				for(int j = 0; j < size; j++) {
					if(("" + radek.charAt(j)).equals("0")) {
						sifra[i][j] = true;
					}else {
						sifra[i][j] = false;
					}
				}
			}
			
			for (int i = 0; i < size; i++) {
				String radek = sc.nextLine().trim();
			//	System.out.println(radek);
				for(int j = 0; j < size; j++) {
					zprava[i][j] = "" + radek.charAt(j);
				}
			}
			
			// nacteno
			int k = 0;
			int l = 0;
			for(int i = 0; i < size; i++) {
				for(int j = 0; j < size; j++) {
					if(sifra[i][j])
						System.out.print(zprava[k][l]);
					l++;
				}	
				l = 0;
				k++;
			}
			
			k = 0;
			l = 0;
			for(int j = 0; j < size; j++) {
				for(int i = size-1; i >= 0; i--) {
					if(sifra[i][j])
						System.out.print(zprava[k][l]);
					l++;
				}	
				l = 0;
				k++;
			}
			
			k = 0;
			l = 0;
			for(int i = size - 1; i >= 0; i--) {
				for(int j = size - 1; j >= 0; j--) {
					if(sifra[i][j])
						System.out.print(zprava[k][l]);
					l++;
				}	
				l = 0;
				k++;
			}
			
			k = 0;
			l = 0;
			for(int j = size-1; j >= 0; j--) {
				for(int i = 0; i < size; i++) {
					if(sifra[i][j])
						System.out.print(zprava[k][l]);
					l++;
				}	
				l = 0;
				k++;
			}
			
			//enter
			System.out.println("");
	}
}
}
