import java.util.*; import java.io.*; public class grille{ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String line; int n; String resitev1; String resitev2; String resitev3; String resitev4; char m1[][]; int m2[][]; //original int m3[][]; //1. rotacija int m4[][]; int m5[][]; int a; while(!(line = br.readLine()).equals("0")){ resitev1 = ""; resitev2 = ""; resitev3 = ""; resitev4 = ""; n = Integer.parseInt(line); m1 = new char[n][n]; m2 = new int[n][n]; m3 = new int[n][n]; m4 = new int[n][n]; m5 = new int[n][n]; //m2 for(int i = 0; i < n; i++){ line = br.readLine(); a = -1; while(true){ a = line.indexOf('O', a+1); if(a != -1){ m2[i][a] = 1; m3[a][n-i-1] = 1; m4[n-i-1][n-a-1] = 1; m5[n-a-1][i] = 1; }else{ break; } } } //m1 for(int i = 0; i < n; i++){ line = br.readLine(); for(int j = 0; j < line.length(); j++){ m1[i][j] = line.charAt(j); } } for(int i = 0; i < n; i++){ for(int j = 0; j < n; j++){ if(m2[i][j] == 1){ resitev1 = resitev1 + m1[i][j]; } if(m3[i][j] == 1){ resitev2 = resitev2 + m1[i][j]; } if(m4[i][j] == 1){ resitev3 = resitev3 + m1[i][j]; } if(m5[i][j] == 1){ resitev4 = resitev4 + m1[i][j]; } } } System.out.println(resitev1+resitev2+resitev3+resitev4); } } }