#include <bits/stdc++.h>
using namespace std;
int main() {
  int t, i, j, n, k;
  scanf("%d", &n);
  vector<pair<string, string> > vec;
  string str;
  string x, y;
  getchar();
  for (i = 0; i < n; i++) {
    getline(cin, str);
    size_t pos = str.find(" ");
    x = str.substr(0, pos);
    y = str.substr(pos + 1);
    vec.push_back(make_pair(x, y));
  }
  string val;
  for (i = 0; i < n; i++) {
    cin >> j;
    x = (vec[j - 1].first < vec[j - 1].second) ? vec[j - 1].first
                                               : vec[j - 1].second;
    y = (vec[j - 1].first >= vec[j - 1].second) ? vec[j - 1].first
                                                : vec[j - 1].second;
    if (!i) {
      val = x;
    } else {
      if (x > val) {
        val = x;
      } else if (y > val) {
        val = y;
      } else {
        cout << "NO";
        return 0;
      }
    }
  }
  cout << "YES";
  return 0;
}
