#include <stdio.h>
#include <iostream>
#include <memory.h>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;
#define sqr(a) ((a) * (a))
#define pi 3.1415926535897932384626433832795
//#define TASK "d"
int n, a;
string c1, c2;
char f[326][2];
void Load()
{
cin >> n;
for(int i = 0; i < n; i++)
scanf("%d%d", f[i][0], f[i][1])
cin >> c1 >> c2;
}
void Solve()
{
if (c1.length() != c2.length())
{
cout << "NO";
return;
}
int len = c1.length();
for(int i = 0; i < n; i++)
{
int l = 0, r = 0;
//bool ok = true;
while(l < len && r < len)
{
while((c1[l] != f[i][0] && c1[l] != f[i][1]) && l < len)
l++;
while((c2[r] != f[i][0] && c2[r] != f[i][1]) && r < len)
r++;
if(c1[l] != c2[r])
{
// cerr << c1[l] << " " << c2[r] << endl;
cout << "NO";
return;
}
l++;
r++;
}
while((c1[l] != f[i][0] && c1[l] != f[i][1]) && l < len)
l++;
while((c2[r] != f[i][0] && c2[r] != f[i][1]) && r < len)
r++;
if (l != r)
{
cout << "NO";
return;
}
}
cout << "YES";
}
int main()
{
// freopen(TASK".in", "r", stdin);
// freopen(TASK".out", "w", stdout);
Load();
Solve();
return 0;
}