#17 #18 #19 #20 #34 错
#include<bits/stdc++.h>
using namespace std;
long long t,n,m,a[100005],b[100005];
bool fp(long long x){
if(x==1) return 0;
for(long long i=1;i*i<=x;i++) if(x%i==0) return 0;
return 1;
}
int main(){
cin>>t;
while(t--){
cin>>n>>m;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1,t=1,x;i<=m;i++) cin>>x,x==1?b[t++]=x:t=t;
if(n-m==0||n-m>1){puts("NO");continue;}
sort(a+1,a+1+n);sort(b+1,b+1+m);
for(int i=1;i<=m;i++) if(a[i]!=b[i]){puts(fp(a[i])?"YES":"NO");break;}
}
}
90<≤≤≦100