#include<iostream>
#include<string>
using namespace std;
struct Item
{
char st[10];
bool flag;
}from[25],to[25];
void move(int sta_pos,int req_pos)
{
strcpy(to[req_pos].st,from[sta_pos].st);
from[sta_pos].flag=1;
to[req_pos].flag=1;
}
int main()
{
int casenum=0;
cin>>casenum;
while(casenum--)
{
int itemnum,opernum;
cin>>itemnum>>opernum;
int i;
//初始化
for(i=1;i<=itemnum;i++)
{
from[i].flag=0;
to[i].flag=0;
}
for(i=1;i<=itemnum;i++)
cin>>from[i].st;
int a,b;
for(i=0;i<opernum;i++)
{
cin>>a>>b;
move(a,b);
}
int j=1,k=1;
while(j<=itemnum && k<=itemnum)
{
while(from[j].flag==1)
j++;
while(to[k].flag==1)
k++;
to[k++]=from[j++];
}
for(i=1;i<=itemnum;i++)
{
cout<<to[i].st;
if(i<itemnum)
cout<<" ";
}
cout<<endl;
}
return 0;
}