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

int main()
{
	int t;
    cin>>t;
    int rezultat[t];
    
    
	for(int i=0;i<t;i++)
    {
        int n,m;
        cin>>n>>m;
        int an[n], am[m];
        
		for(int q=0;q<n;q++)
            cin>>an[q];
        for(int q=0;q<m;q++)
            cin>>am[q];
        
        sort(an, an + n);
        sort(am, am + m);
       
        int najmanja_razlika = an[0] - an[1], razlike[n-1];
        if(najmanja_razlika<0)
        	najmanja_razlika*=-1;
        	
        for(int q=0;q<n;q++)
        {
            if(an[q]>an[q+1])
            {
                an[q]-an[q+1]<najmanja_razlika ? najmanja_razlika=an[q]-an[q+1] : 0;
                razlike[q] = an[q]-an[q+1];
            }
            else
            {
                razlike[q] = an[q+1]-an[q];
                an[q+1]-an[q]<najmanja_razlika ? najmanja_razlika=an[q+1]-an[q] : 0;
            }
        }
       
        int delioci[najmanja_razlika/2+1], o = 0;
        for(int q=najmanja_razlika/2+1;q>1;q--)
        {
            if(najmanja_razlika%q==0)
            {
                delioci[o] = q;
                o++;
            }
        }
       
        int nzd[najmanja_razlika-1], s = 0, l = 0;
        for(int q=o;q>=0;q--)
        {
            for(int r=0;r<n-1;r++)
            {
                if(razlike[r]%delioci[q]!=0)
                    break;
                l++;
                if(l==n-1)
                {
                	nzd[s] = delioci[q];
                	s++;
				}
            }
        }
        if(s==0)
        {
        	rezultat[i] = 0;
        	continue;
		}
        
        int x = 0;
        for(int q=0;nzd[q]!='\0';q++)
        {
        	for(int r=0;r<m;r++)
        	{
        		if(am[r]%nzd[q]==an[0]%nzd[q])
        			break;
        		x++;
			}
		}
		
		if(x==m)
			rezultat[i] = 1;
		else
			rezultat[i] = 0;
			
    }
    
    for(int i=0;i<t;i++)
    	cout<<rezultat[i]<<endl;
    	
    return 0;
}