#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
pair<string, string> nm[N];
vector<string> ans;
int main() {
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> nm[i].first >> nm[i].second;
    if (nm[i].second < nm[i].first) swap(nm[i].first, nm[i].second);
  }
  for (int i = 0; i < n; i++) {
    int p;
    cin >> p;
    p--;
    if (!ans.size() || ans.back() < nm[p].first)
      ans.push_back(nm[p].first);
    else if (ans.size() && ans.back() < nm[p].second)
      ans.push_back(nm[p].second);
  }
  if (ans.size() == n)
    cout << "YES\n";
  else
    cout << "NO\n";
  return 0;
}
