#include <bits/stdc++.h>
using namespace std;

int main()
{
    int T;
    cin>>T;
    int N;
    int M;
    int rez[T];
    for(int i=0; i<T; i++)
    {
        int R=1;
        cin>>N;
        cin>>M;
        long long unsigned int poz[N];
        long long unsigned int neg[M];
        for(int y=0; y<N; y++)
        {
            cin>>poz[y];
        }
        for(int y=0; y<M; y++)
        {
            cin>>neg[y];
        }
        sort(poz,poz+N);
        int pom[N-1];
        for(int i=0;i<N-1; i++)
        {
            pom[i]=poz[i+1]-poz[i];
        }
        sort(pom,pom+N-1);
        long long unsigned int X=pom[0];
        long long unsigned int x=poz[0]%X;
        for(int i=0;i<N;i++)
        {
            if(poz[i]%X!=x)
            {
                R=0;
            }
        }
        for(int i=0;i<M;i++)
        {
            if(poz[0]+X==neg[i])
            {
                R=0;
            }
        }
        int pom1=0;
        for(int i=0;i<M;i++)
        {
            if(neg[i]%X==x)
            {
                R=0;
            }
        }
        rez[i]=R;
    }
    for(int i=0;i<T;i++)
    {
        cout<<rez[i]<<endl;
    }
    return 0;

}