#include <bits/stdc++.h>
using namespace std;
int main(){
long long t,n,m;
scanf("%lli",&t);
if(t==1){
    scanf("%lli %lli", &n, &m);
    long long niz[n],niz2[m],min=pow(10,17),brojac=0;
    for(int i=0; i<n; i++) scanf("%lli",&niz[i]);
    for(int i=0; i<m; i++) scanf("%lli",&niz2[i]);
    sort(niz,niz+n);
    sort(niz2,niz2+m);
    for(int i=0; i<n-1; i++){
        if(niz[i+1]-niz[i]<min) min=niz[i+1]-niz[i];
    }
    for(int i=0; i<m; i++){
        if((niz2[i]-niz[0])%min!=0) brojac++;
        else{
            break;
        }
    }
    if(brojac==m) printf("1\n");
    else printf("0\n");
}
else if(t==2){
    scanf("%lli %lli", &n, &m);
    long long niz[n],niz2[m],min=pow(10,17),brojac=0;
    for(int i=0; i<n; i++) scanf("%lli",&niz[i]);
    for(int i=0; i<m; i++) scanf("%lli",&niz2[i]);
    sort(niz,niz+n);
    sort(niz2,niz2+m);
    for(int i=0; i<n-1; i++){
        if(niz[i+1]-niz[i]<min) min=niz[i+1]-niz[i];
    }
    for(int i=0; i<m; i++){
        if((niz2[i]-niz[0])%min!=0) brojac++;
        else{
            break;
        }
    }
    if(brojac==m) printf("1\n");
    else printf("0\n");
    scanf("%lli %lli", &n, &m);
    min=pow(10,17),brojac=0;
    for(int i=0; i<n; i++) scanf("%lli",&niz[i]);
    for(int i=0; i<m; i++) scanf("%lli",&niz2[i]);
    sort(niz,niz+n);
    sort(niz2,niz2+m);
    for(int i=0; i<n-1; i++){
        if(niz[i+1]-niz[i]<min) min=niz[i+1]-niz[i];
    }
    for(int i=0; i<m; i++){
        if((niz2[i]-niz[0])%min!=0) brojac++;
        else{
            break;
        }
    }
    if(brojac==m) printf("1\n");
    else printf("0\n");
}
else if(t==3){
    scanf("%lli %lli", &n, &m);
    long long niz[n],niz2[m],min=pow(10,17),brojac=0;
    for(int i=0; i<n; i++) scanf("%lli",&niz[i]);
    for(int i=0; i<m; i++) scanf("%lli",&niz2[i]);
    sort(niz,niz+n);
    sort(niz2,niz2+m);
    for(int i=0; i<n-1; i++){
        if(niz[i+1]-niz[i]<min) min=niz[i+1]-niz[i];
    }
    for(int i=0; i<m; i++){
        if((niz2[i]-niz[0])%min!=0) brojac++;
        else{
            break;
        }
    }
    if(brojac==m) printf("1\n");
    else printf("0\n");
    scanf("%lli %lli", &n, &m);
    min=pow(10,17),brojac=0;
    for(int i=0; i<n; i++) scanf("%lli",&niz[i]);
    for(int i=0; i<m; i++) scanf("%lli",&niz2[i]);
    sort(niz,niz+n);
    sort(niz2,niz2+m);
    for(int i=0; i<n-1; i++){
        if(niz[i+1]-niz[i]<min) min=niz[i+1]-niz[i];
    }
    for(int i=0; i<m; i++){
        if((niz2[i]-niz[0])%min!=0) brojac++;
        else{
            break;
        }
    }
    if(brojac==m) printf("1\n");
    else printf("0\n");
    scanf("%lli %lli", &n, &m);
    min=pow(10,17),brojac=0;
    for(int i=0; i<n; i++) scanf("%lli",&niz[i]);
    for(int i=0; i<m; i++) scanf("%lli",&niz2[i]);
    sort(niz,niz+n);
    sort(niz2,niz2+m);
    for(int i=0; i<n-1; i++){
        if(niz[i+1]-niz[i]<min) min=niz[i+1]-niz[i];
    }
    for(int i=0; i<m; i++){
        if((niz2[i]-niz[0])%min!=0) brojac++;
        else{
            break;
        }
    }
    if(brojac==m) printf("1\n");
    else printf("0\n");
}
else if(t==4){
    scanf("%lli %lli", &n, &m);
    long long niz[n],niz2[m],min=pow(10,17),brojac=0;
    for(int i=0; i<n; i++) scanf("%lli",&niz[i]);
    for(int i=0; i<m; i++) scanf("%lli",&niz2[i]);
    sort(niz,niz+n);
    sort(niz2,niz2+m);
    for(int i=0; i<n-1; i++){
        if(niz[i+1]-niz[i]<min) min=niz[i+1]-niz[i];
    }
    for(int i=0; i<m; i++){
        if((niz2[i]-niz[0])%min!=0) brojac++;
        else{
            break;
        }
    }
    if(brojac==m) printf("1\n");
    else printf("0\n");
    scanf("%lli %lli", &n, &m);
    min=pow(10,17),brojac=0;
    for(int i=0; i<n; i++) scanf("%lli",&niz[i]);
    for(int i=0; i<m; i++) scanf("%lli",&niz2[i]);
    sort(niz,niz+n);
    sort(niz2,niz2+m);
    for(int i=0; i<n-1; i++){
        if(niz[i+1]-niz[i]<min) min=niz[i+1]-niz[i];
    }
    for(int i=0; i<m; i++){
        if((niz2[i]-niz[0])%min!=0) brojac++;
        else{
            break;
        }
    }
    if(brojac==m) printf("1\n");
    else printf("0\n");
    scanf("%lli %lli", &n, &m);
    min=pow(10,17),brojac=0;
    for(int i=0; i<n; i++) scanf("%lli",&niz[i]);
    for(int i=0; i<m; i++) scanf("%lli",&niz2[i]);
    sort(niz,niz+n);
    sort(niz2,niz2+m);
    for(int i=0; i<n-1; i++){
        if(niz[i+1]-niz[i]<min) min=niz[i+1]-niz[i];
    }
    for(int i=0; i<m; i++){
        if((niz2[i]-niz[0])%min!=0) brojac++;
        else{
            break;
        }
    }
    if(brojac==m) printf("1\n");
    else printf("0\n");
    scanf("%lli %lli", &n, &m);
    min=pow(10,17),brojac=0;
    for(int i=0; i<n; i++) scanf("%lli",&niz[i]);
    for(int i=0; i<m; i++) scanf("%lli",&niz2[i]);
    sort(niz,niz+n);
    sort(niz2,niz2+m);
    for(int i=0; i<n-1; i++){
        if(niz[i+1]-niz[i]<min) min=niz[i+1]-niz[i];
    }
    for(int i=0; i<m; i++){
        if((niz2[i]-niz[0])%min!=0) brojac++;
        else{
            break;
        }
    }
    if(brojac==m) printf("1\n");
    else printf("0\n");
}
else if(t==5){
    scanf("%lli %lli", &n, &m);
    long long niz[n],niz2[m],min=pow(10,17),brojac=0;
    for(int i=0; i<n; i++) scanf("%lli",&niz[i]);
    for(int i=0; i<m; i++) scanf("%lli",&niz2[i]);
    sort(niz,niz+n);
    sort(niz2,niz2+m);
    for(int i=0; i<n-1; i++){
        if(niz[i+1]-niz[i]<min) min=niz[i+1]-niz[i];
    }
    for(int i=0; i<m; i++){
        if((niz2[i]-niz[0])%min!=0) brojac++;
        else{
            break;
        }
    }
    if(brojac==m) printf("1\n");
    else printf("0\n");
    scanf("%lli %lli", &n, &m);
    min=pow(10,17),brojac=0;
    for(int i=0; i<n; i++) scanf("%lli",&niz[i]);
    for(int i=0; i<m; i++) scanf("%lli",&niz2[i]);
    sort(niz,niz+n);
    sort(niz2,niz2+m);
    for(int i=0; i<n-1; i++){
        if(niz[i+1]-niz[i]<min) min=niz[i+1]-niz[i];
    }
    for(int i=0; i<m; i++){
        if((niz2[i]-niz[0])%min!=0) brojac++;
        else{
            break;
        }
    }
    if(brojac==m) printf("1\n");
    else printf("0\n");
    scanf("%lli %lli", &n, &m);
    min=pow(10,17),brojac=0;
    for(int i=0; i<n; i++) scanf("%lli",&niz[i]);
    for(int i=0; i<m; i++) scanf("%lli",&niz2[i]);
    sort(niz,niz+n);
    sort(niz2,niz2+m);
    for(int i=0; i<n-1; i++){
        if(niz[i+1]-niz[i]<min) min=niz[i+1]-niz[i];
    }
    for(int i=0; i<m; i++){
        if((niz2[i]-niz[0])%min!=0) brojac++;
        else{
            break;
        }
    }
    if(brojac==m) printf("1\n");
    else printf("0\n");
    scanf("%lli %lli", &n, &m);
    min=pow(10,17),brojac=0;
    for(int i=0; i<n; i++) scanf("%lli",&niz[i]);
    for(int i=0; i<m; i++) scanf("%lli",&niz2[i]);
    sort(niz,niz+n);
    sort(niz2,niz2+m);
    for(int i=0; i<n-1; i++){
        if(niz[i+1]-niz[i]<min) min=niz[i+1]-niz[i];
    }
    for(int i=0; i<m; i++){
        if((niz2[i]-niz[0])%min!=0) brojac++;
        else{
            break;
        }
    }
    if(brojac==m) printf("1\n");
    else printf("0\n");
    scanf("%lli %lli", &n, &m);
    min=pow(10,17),brojac=0;
    for(int i=0; i<n; i++) scanf("%lli",&niz[i]);
    for(int i=0; i<m; i++) scanf("%lli",&niz2[i]);
    sort(niz,niz+n);
    sort(niz2,niz2+m);
    for(int i=0; i<n-1; i++){
        if(niz[i+1]-niz[i]<min) min=niz[i+1]-niz[i];
    }
    for(int i=0; i<m; i++){
        if((niz2[i]-niz[0])%min!=0) brojac++;
        else{
            break;
        }
    }
    if(brojac==m) printf("1\n");
    else printf("0\n");
}
return 0;
}