import sys
input = sys.stdin.readline
n,m =map(int,input().split())
name_list = input().split()
#用于存储名字到id的一个字典
name_to_id = {}
#用于最后输出顺序的id_to_name
id_to_name = [""]*(n+1)
#数组模拟双向链表
#存前驱pre_arr[i]存的是id为i的前驱
pre_arr = [0]*(n+2)
#存后继next_arr[i]存的是id为i的后继
next_arr = [0]*(n+2)
#初始化,分配id 1-n
for i,name in enumerate(name_list):
#实际上就是其原始位置下标,作为id
user_id = i+1
name_to_id[name]=user_id
#按顺序记名字
id_to_name[user_id]=name
#初始化前驱后继
next_arr[0]=1#头结点位置为0,其后继为1
pre_arr[n+1]=n#尾节点n+1,前驱为n
for i in range(1,n+1):
pre_arr[i]=i-1
next_arr[i]=i+1
for i in range(m):
#待插入名字,与被插入名字
insert_name,origin_name = input().split()
#获取其相应的下标
insert_id = name_to_id[insert_name]
origin_id = name_to_id[origin_name]
#1.将insert_name从双向链表中取下
#先获取,insert_id的前驱和后继
pre_insert_id = pre_arr[insert_id]
next_insert_id = next_arr[insert_id]
#再修改双链表,原来insert_id的前驱直接指向insert_id的后继
pre_arr[next_insert_id]=pre_insert_id
next_arr[pre_insert_id]=next_insert_id
#2.将insert_id插入origin_id前
#先获取origin_id的前驱
pre_origin_id=pre_arr[origin_id]
#将insert_id插入其中
#insert_id的前驱变为origin_id的前驱
pre_arr[insert_id]=pre_origin_id
#origin_id的前驱的后继变为insert_id
next_arr[pre_origin_id]=insert_id
#origin_id的前驱变为insert_id
pre_arr[origin_id]=insert_id
#insert_id的后继变为origin_id
next_arr[insert_id]=origin_id
#输出结果:
result=[]
#cur为工作指针
cur_id = next_arr[0]
while cur_id != n+1:
result.append(id_to_name[cur_id])
#cur_id指向下一个节点
cur_id = next_arr[cur_id]
print(" ".join(result))