#include <iostream>
#include <list>
#include <string>
#include <unordered_map>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
list<string> queue;
unordered_map<string, list<string>::iterator> pos;
string name, x, y;
for (int i = 0; i < n; ++i) {
cin >> name;
queue.push_back(name);
pos[name] = prev(queue.end());
}
for (int i = 0; i < m; ++i) {
cin >> x >> y;
auto it_x = pos[x];
auto it_y = pos[y];
if (it_x != it_y) {
queue.erase(it_x);
pos[x] = queue.insert(it_y, x);
}
}
for (const string& name : queue) {
cout << name << " ";
}
return 0;
}