#include <bits/stdc++.h>

using namespace std;

static void Razmeni(long long *a,long long *b) {
            long long t = *a;
            *a = *b;
            *b = t;

}
int Partition(long long a[75000],int l,int r,int n){
            int p = a[r];
            int i = l-1;
            for (int j = l; j <= r - 1; j++) {
                if (a[j] < p) {
                    i++;
                    Razmeni(&a[i],&a[j]);

                }
            }
            Razmeni(&a[r],&a[i + 1]);
            return i+1;

}
void QuickSort(long long a[75000],int l,int r,int n){
    if (l >= r) {
        return;
    }
    int p = Partition(a, l,r,n);
    QuickSort(a, l, p - 1,n);
    QuickSort(a, p + 1, r,n);

}
int CompareNum(long long a[75000],int n){
    int k=a[1]-a[0];
    for(int i=1; i<n-1; i++){
        if(a[i+1]-a[i]!=k&&(a[i+1]-a[i])%k!=0){

            return 0;

         }

    }
    return k;

}
int Deny(long long b[75000],int m,int k){
    for(int i=0; i<m-1; i++){
        int t = b[i+1]-b[i];
        if(t%k==0){
            return 0;
        }

    }
    return 1;
}
int run(){
    int n; cin>>n;
    long long a[n];
    int m ;cin>>m;
    long long b[m];
    for(int i=0; i<n; i++){
        cin>>a[i];
    }
    for(int i=0; i<m; i++){
        cin>>b[i];
    }
    QuickSort(a,0,n-1,n);
    if(CompareNum(a,n)==0){
        return 0;
    }else{
        return Deny(b,m,CompareNum(a,n));
    }




}



int main(){
    int t; cin>>t;
    int ta[t];
    for(int i=0; i<t; i++){
        ta[i]=run();
    }
    for(int i=0; i<t; i++){
        cout<<ta[i]<<endl;

    }

}