#include <bits/stdc++.h>
#define pii pair <int, int>
#define ull unsigned long long
#define ll long long

using namespace std;

bool moze[7];
const int N=75005;
const int M=75005;

ll a[N], b[M];
ll c[N];
ll nzd(ll x, ll y)
{
    if (x%y==0) return y;
    else return nzd(y, x%y);
}

ll nzd1(int n)
{
    if (n==1)
    {
        return c[1];

    }
    else if (n==2)
    {
        return nzd(c[1], c[2]);
    }
    else
    {
    for (int i=1; 2*i<=n; i++)
    {
        c[i]=nzd(c[2*i-1], c[2*i]);
    }
    if (n%2==1)
    {
      c[(n+1)/2]=c[n];
    }

    return nzd1(n/2);
    }


}
void obradi(int i)
{
      int n, m;
    cin>>n>>m;
    cin>>a[0];
    for (int k=1; k<n; k++)
    {
        cin>>a[k];
        c[k]=abs(a[k]-a[0]);
    }
    for (int k=0; k<m; k++)
    {
        cin>>b[k];
    }

   ll p=nzd1(n-1);
   bool dali=1;
   int j=0;
   while (j<m)
   {
       if (abs(b[j]-a[0])%p==0)
       {
           dali=0;
         break;
       }
       j++;
   }
   moze[i]=dali;

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

    return 0;
}