import sys
ins = (tok for tok in sys.stdin.readlines())
n = int(next(ins))
names = []
for _ in range(n):
names.append(next(ins).split())
order = [int(tok)-1 for tok in next(ins).split()]
f,l = names[order[0]]
if f <= l:
prev_handle = f
else:
prev_handle = l
feasible = True
for i in range(1, n):
f,l = names[order[i]]
if f <= l:
first = f
second = l
else:
first = l
second = f
if prev_handle < first:
prev_handle = first
elif prev_handle < second:
prev_handle = second
else:
print("NO")
feasible = False
break
if feasible:
print("YES")
43A - Football | 50A - Domino piling |
479A - Expression | 1480A - Yet Another String Game |
1216C - White Sheet | 1648A - Weird Sum |
427A - Police Recruits | 535A - Tavas and Nafas |
581A - Vasya the Hipster | 1537B - Bad Boy |
1406B - Maximum Product | 507B - Amr and Pins |
379A - New Year Candles | 1154A - Restoring Three Numbers |
750A - New Year and Hurry | 705A - Hulk |
492B - Vanya and Lanterns | 1374C - Move Brackets |
1476A - K-divisible Sum | 1333A - Little Artem |
432D - Prefixes and Suffixes | 486A - Calculating Function |
1373B - 01 Game | 1187A - Stickers and Toys |
313B - Ilya and Queries | 579A - Raising Bacteria |
723A - The New Year Meeting Friends | 302A - Eugeny and Array |
1638B - Odd Swap Sort | 1370C - Number Game |