/*
*/

#include <iostream>
#include <limits>
using namespace std;

int main()
{

    long long int t,n,m,i,j,k,br,g=0;
    cin>>t;

    long long int T[t];

    for(k=0;k<t;k++)
    {
    cin>>n>>m;
    long long int N[n],M[m],br1[n],br2[m];
    for(i=0;i<n;i++)
    cin>>N[i];

    for(i=0;i<m;i++)
    cin>>M[i];

    for(i=0;i<n-1;i++)
    {
        if(N[i]>N[i+1])
            br1[i]=N[i]-N[i+1];
        else
            br1[i]=N[i+1]-N[i];

    }


    long long int minv = numeric_limits <long long int>::max();
    for(i=0;i<n-1;i++)
    {
        if(br1[i]<minv)
            minv=br1[i];
    }

    for(i=0;i<n-1;i++)
    {
        if(((br1[i])%minv)!=0)
            g++;
    }

      for(i=0;i<n;i++)
      {
         for(j=0;j<m;j++)
         {
             if(N[i]>M[j])
                {br=N[i]-M[j];}

             else
               {br=M[j]-N[i];}

             if((br%minv)==0)
             {g++;}
         }
      }
      if(g==0)
        {T[k]=1;}
      else
        {T[k]=0;}
        g=0;
}
    for(k=0;k<t;k++)
    {
        cout<<T[k]<<endl;
    }
return 0;
}