#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int T,N,M;
long long A1[75002],B1[75002],a[75002],b[75002];
bool bul[7];



void loadA(long long A[], int N, long long a[]){

    int n=N-1;
    for(int i=1;i<N;i++){
        a[i-1]=A[i]-A[i-1];
    }
    sort(a,a+n);
}

bool check(){
    long long x; bool u;
    for(int i=0;i<N-1;i++){
            u=true;
            x=A1[0]%a[i];
        for(int j=0;j<N&&u;j++){
            if(A1[j]%a[i]!=x)u=false;
        }
        for(int j=0;j<M&&u;j++){
            if(B1[j]%a[i]==x)u=false;
        }
    if(u==true)return true;

    }
    return false;
}
int main()
{
    ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cerr.tie(0);
    cin>>T;
    for(int i=0;i<T;i++){
        cin>>N>>M;
    for(int j=0;j<N;j++)cin>>A1[j];
    sort(A1,A1+N);
    loadA(A1,N,a);
    for(int j=0;j<M;j++)cin>>B1[j];
    bul[i]=check();

    }

    for(int i=0;i<T;i++){
        cout<<bul[i]<<endl;
    }

}