#include <stdio.h>
#include <string.h>
#define N 105
int n, m, i, j, k, a[N][N], b[N][N], c[N][N];
int ok(){
for(i=1; i<=n; i++){
for(j=1; j<=n; j++){
if(a[i][j] != 1) continue;//非1的地方忽略
if(b[i][j] != 1) return 0;//1的地方必须是1
}
}
return 1;
}
void zhuan(){
for(i=1; i<=n; i++){
for(j=1; j<=n; j++){
c[i][j] = a[n+1-j][i];//按照规则旋转
}
}
memcpy(a, c, sizeof(a));
}
int main(){
scanf("%d", &n);
for(i=1; i<=n; i++){
for(j=1; j<=n; j++){
scanf("%d", &a[i][j]);
}
}
for(i=1; i<=n; i++){
for(j=1; j<=n; j++){
scanf("%d", &b[i][j]);
}
}
for(k=1; k<=9; k++){
if(ok()) break;//顺时针旋转,周期为4
zhuan();
}
printf("%s\n", k<=9?"Yes":"No");
return 0;
}