#include<iostream>
using namespace std;
void zamena(int a, int b)  
{  
    int t = a;  
     a = b;  
     b = t;  
}  
int particija(int a[], int p, int k)
{
    int i=p,j=k;
    while(i<j)
    {
        while(a[i]<=a[k])
            i++;
        while(a[j]>=a[k])
            j--;
        zamena(a[j],a[i]);        
    } 
    return j;
}
void sortiraj(int a[], int p, int k)
{
   int j=particija(a,p,k);
    sortiraj(a,p,j);
    sortiraj(a,j+1,k);
}
int main()
{
    int t,r=0,n,m,a[5001],broj1=1,min1,i,j,prom1,q,b[5];
    cin>>t;
    for(r=0;r<t;r++)
    {
        q=1;
        cin>>n>>m;
        for( i=0;i<n;i++)
            cin>>a[i];
        prom1=a[0];
        a[n]=1000000000;
        sortiraj(a,0,n);
        min1=a[1]-a[0];
        for(j=2;j<n;j++)
        {
            if(min1>a[j]-a[j-1])
                min1=a[j]-a[j-1];
        }
        for(j=1;j<n;j++)
        {
            if((a[j]-prom1)%min1!=0)
            {
                q=0;
                 break;
             }
        }
        for(i=0;i<m;i++)
            cin>>a[i];
        i=0;
        while(q!=0&&i<m)
        {
            if((a[i]-prom1)%min1==0)
                q=0;
        }
        b[r]=q;
    }
    for(r=0;r<t;r++)
        cout<<b[r]<<endl;
    return 0;
}