#include <bits/stdc++.h>
using namespace std;
int n;
void upsidedown(char a[11][11]) {
  int i = 0;
  for (; i < n / 2; i++) {
    char temp[11];
    strcpy(temp, a[i]);
    strcpy(a[i], a[n - 1 - i]);
    strcpy(a[n - 1 - i], temp);
  }
}
void filp(char a[11][11]) {
  int i, j;
  for (i = 0; i < n; i++)
    for (j = 0; j < n / 2; j++) swap(a[i][j], a[i][n - 1 - j]);
}
void copy(char a[11][11], char b[11][11]) {
  int i, j;
  for (i = 0; i < n; i++) {
    for (j = 0; j < n; j++) a[i][j] = b[i][j];
    a[i][j] = '\0';
  }
}
void whirl(char a[11][11]) {
  char b[11][11];
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) b[j][n - 1 - i] = a[i][j];
  }
  copy(a, b);
}
bool issame(char a[11][11], char b[11][11]) {
  for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++)
      if (a[i][j] != b[i][j]) return 0;
  return 1;
}
int dfs(char a[11][11], char b[11][11]) {
  upsidedown(a);
  if (issame(a, b)) return 1;
  int i = 0;
  for (; i < 3; i++) {
    whirl(a);
    if (issame(a, b)) return 1;
  }
  if (i == 3) return 0;
}
int dfs3(char a[11][11], char b[11][11]) {
  int i = 0;
  for (; i < 3; i++) {
    whirl(a);
    if (issame(a, b)) return 1;
    upsidedown(a);
    if (issame(a, b)) return 1;
  }
  if (i == 3) return 0;
}
int dfs2(char a[11][11], char b[11][11]) {
  filp(a);
  if (issame(a, b)) return 1;
  int i = 0;
  for (; i < 3; i++) {
    whirl(a);
    if (issame(a, b)) return 1;
  }
  if (i == 3) return 0;
}
int dfs4(char a[11][11], char b[11][11]) {
  int i = 0;
  for (; i < 3; i++) {
    whirl(a);
    if (issame(a, b)) return 1;
    filp(a);
    if (issame(a, b)) return 1;
  }
  if (i == 3) return 0;
}
int main() {
  while (~scanf("%d", &n)) {
    char a[11][11], b[11][11], c[11][11];
    for (int i = 0; i < n; i++) scanf("%s", a[i]);
    for (int i = 0; i < n; i++) scanf("%s", b[i]);
    int i = 0;
    copy(c, a);
    for (; i < 3; i++) {
      whirl(c);
      if (issame(c, b)) break;
    }
    if (i < 3) {
      printf("Yes\n");
      continue;
    }
    copy(c, a);
    if (dfs(c, b)) {
      printf("Yes\n");
      continue;
    }
    copy(c, a);
    if (dfs2(c, b)) {
      printf("Yes\n");
      continue;
    }
    copy(c, a);
    if (dfs3(c, b)) {
      printf("Yes\n");
      continue;
    }
    copy(c, a);
    if (dfs4(c, b)) {
      printf("Yes\n");
      continue;
    }
    printf("No\n");
  }
  return 0;
}
