#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
const int w = 3e5 + 5;
long long a[1005][1005], b[1005][1005];
set<long long> s;
int main() {
  long long i, j, k, n, m, t;
  cin >> n >> m;
  for (i = 1; i <= n; i++)
    for (j = 1; j <= m; j++) scanf("%lld", &a[i][j]);
  for (i = 1; i <= n; i++)
    for (j = 1; j <= m; j++) scanf("%lld", &b[i][j]);
  k = 2;
  while (1) {
    for (i = 1; i <= n; i++) {
      j = k - i;
      if (j < 1) break;
      if (!s.count(a[i][j]))
        s.insert(a[i][j]);
      else
        s.erase(a[i][j]);
      if (!s.count(b[i][j]))
        s.insert(b[i][j]);
      else
        s.erase(b[i][j]);
    }
    if (!s.empty()) {
      cout << "NO" << endl;
      return 0;
    }
    k++;
    if (k > max(n, m) * 2 + 2) break;
  }
  cout << "YES" << endl;
  return 0;
}
