#16~#20和#34一直错
#include<bits/stdc++.h>
using namespace std;
int T,n,m;
long long a[100010],b[100010];
int main() {
cin>>T;
while(T--){
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
bool flag=0;
cin>>n>>m;
//b[m+1]=1e17;
if(n-1!=m){
cout<<"NO"<<endl;
continue;
}
int num=0;
map<long long,int> bok;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
cin>>b[i];
}
sort(a+1,a+1+n);
sort(b+1,b+1+m);
bool no2=0;
for(int i=1,j=1;i<=n;i++,j++){
if(j==n){
num=a[n];
break;
}
if(!flag && a[i]!=b[j]){
num=a[i];
j--;
flag=1;
}
if(flag && a[i]!=b[i]){
cout<<"NO"<<endl;
no2=1;
break;
}
}
if(no2)continue;
if(!flag){
num=a[n];
}
//cout<<num<<' ';
bool no3=0;
for(int i=2;i*i<num;i++){
if(num%i==0){
cout<<"NO"<<endl;
no3=1;
break;
}
}
if(no3)continue;
cout<<"YES"<<endl;
}
return 0;
}