#include <bits/stdc++.h>
using namespace std;
int T;
int n,m,r,s;
struct fscard
{
int f;
int p;
}fs[200];
struct frcard
{
int f;
int p;
}fr[200];
int cardnum[2];
bool cmp1(fscard c,fscard d)
{
return c.p<d.p;
}
bool cmp2(frcard c,frcard d)
{
return c.p<d.p;
}
int main()
{
cin>>T;
while(T>0)
{
cin>>n>>m>>r>>s;
for(int i=1;i<=n;i++)
{
cin>>fs[i].f;
}
for(int i=1;i<=n;i++)
{
cin>>fs[i].p;
}
for(int i=1;i<=n;i++)
{
cin>>fr[i].f;
}
for(int i=1;i<=n;i++)
{
cin>>fr[i].p;
}
cardnum[1]=n;
cardnum[2]=n;
sort(fs+1,fs+n+1,cmp1);
sort(fr+1,fr+n+1,cmp2);
int winner=0;
int flag=0;
int tmpf=0,tmpp=0;
int cardhave=0;
while(1)
{
if(s==1)
{
if(flag==0)
{
int minn=INT_MAX;
int minnp=INT_MAX;
int zb;
for(int j=1;j<=n;j++)
{
if(fs[j].p!=0)
{
minnp=min(minnp,fs[j].p);
break;
}
}
for(int i=1;i<=n;i++)
{
if(fs[i].p==minnp&&fs[i].f<=minn&&fs[i].f!=0)
{
minn=fs[i].f;
zb=i;
}
}
cardnum[1]--;
if(cardnum[1]==0)
{
cout<<"FS wins!"<<endl;
T--;
break;
}
tmpf=fs[zb].f;
tmpp=fs[zb].p;
fs[zb].f=0;
fs[zb].p=0;
flag=1;
s=2;
}
else
{
for(int i=1;i<=n;i++)
{
if(fs[i].f==tmpf&&fs[i].p>tmpp)
{
cardhave=1;
tmpf=fs[i].f;
tmpp=fs[i].p;
fs[i].f=0;
fs[i].p=0;
cardnum[1]--;
if(cardnum[1]==0)
{
cout<<"FS wins!"<<endl;
T--;
break;
}
s=2;
break;
}
}
if(cardhave==0)
{
tmpf=0;
tmpp=0;
flag=0;
s=2;
}
cardhave=0;
}
}
else if(s==2)
{
if(flag==0)
{
int minn=INT_MAX;
int minnp=INT_MAX;
int zb;
for(int j=1;j<=n;j++)
{
if(fr[j].p!=0)
{
minnp=min(minnp,fr[j].p);
break;
}
}
for(int i=1;i<=n;i++)
{
if(fr[i].p==minnp&&fr[i].f<=minn&&fr[i].f!=0)
{
minn=fr[i].f;
zb=i;
}
}
cardnum[2]--;
if(cardnum[2]==0)
{
cout<<"FR wins!"<<endl;
T--;
break;
}
tmpf=fr[zb].f;
tmpp=fr[zb].p;
fr[zb].f=0;
fr[zb].p=0;
flag=1;
s=1;
}
else
{
for(int i=1;i<=n;i++)
{
if(fr[i].f==tmpf&&fr[i].p>tmpp)
{
cardhave=1;
tmpf=fr[i].f;
tmpp=fr[i].p;
fr[i].f=0;
fr[i].p=0;
cardnum[2]--;
if(cardnum[2]==0)
{
cout<<"FR wins!"<<endl;
T--;
break;
}
s=1;
break;
}
}
if(cardhave==0)
{
tmpf=0;
tmpp=0;
flag=0;
s=1;
}
cardhave=0;
}
}
}
}
return 0;
}