#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
#define int long long
const int N=3e5+5;
int x[N],y[N];
vector<int>v[N];
bool fun(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>x[i];
for(int i=1;i<=n;i++)cin>>y[i];
for(int i=1;i<=n;i++)v[i].clear();
for(int i=0;i<m;i++){
int a,b;
cin>>a>>b;
v[a].pb(b);
v[b].pb(a);
}
vector<pair<int,int>>vc;
for(int i=1;i<=n;i++){
vc.pb({x[i],i});
}
sort(vc.begin(),vc.end());
while(!vc.empty()){
int A=vc.back().ss;
int X=vc.back().ff;
vc.pop_back();
queue<int>q;
q.push(A);
vector<bool>vis(n+19);
vis[A]=1;
while(!q.empty()){
int a=q.front();
q.pop();
for(auto b:v[a]){
if(vis[b]==0 and y[b]<=X and x[b]>=X){
x[b]=X;
vis[b]=1;
q.push(b);
}
}
}
}
for(int i=1;i<=n;i++)if(y[i]!=x[i])return 0;
return 1;
}
signed main(){
int t;
cin>>t;
while(t--)cout<<fun()<<endl;
}