#include <bits/stdc++.h>
using namespace std;
const int N = 15;
char s[N][N];
char tmp[N][N];
char ve[N][N][N];
int n;
void rota(int a) {
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < n; ++j) {
      ve[a][i][j] = ve[a - 1][n - 1 - j][i];
    }
  }
}
void zfanzhuan(int a) {
  for (int i = n - 1; i >= 0; --i) {
    for (int j = 0; j < n; ++j) {
      ve[a][i][j] = ve[0][n - 1 - i][j];
    }
  }
}
void hfanzhuan(int a) {
  for (int i = n - 1; i >= 0; --i) {
    for (int j = 0; j < n; ++j) {
      ve[a][i][j] = ve[0][i][n - 1 - j];
    }
  }
}
bool compare(int a) {
  bool flag = false;
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < n; ++j) {
      if (ve[a][i][j] != tmp[i][j]) {
        return false;
      }
    }
  }
  return true;
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; ++i) {
    scanf("%s", s[i]);
  }
  for (int i = 0; i < n; ++i) {
    scanf("%s", tmp[i]);
  }
  int a = 1;
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < n; ++j) {
      ve[0][i][j] = s[i][j];
    }
  }
  rota(a);
  a++;
  rota(a);
  a++;
  rota(a);
  a++;
  zfanzhuan(a);
  a++;
  rota(a);
  a++;
  rota(a);
  a++;
  rota(a);
  a++;
  hfanzhuan(a);
  a++;
  rota(a);
  a++;
  rota(a);
  a++;
  rota(a);
  a++;
  bool flag = false;
  for (int i = 0; i < 12; ++i) {
    if (compare(i)) {
      printf("Yes\n");
      flag = true;
      break;
    }
  }
  if (!flag) {
    printf("No\n");
  }
  return 0;
}
