#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int t,n,m;
vector <long long int> a;
vector <long long int> b;
vector <long long int> rez;
bool obrada()
{
    long long int minrastojanje,i;
    sort(a.begin(),a.end());
    sort(b.begin(),b.end());
    minrastojanje=a[1]-a[0];
    for(i=1;i+1<n;i++)
    {
        minrastojanje=min(minrastojanje,a[i+1]-a[i]);
    }
    for(i=0;i<m;i++)
    {
        b[i]-=a[0];
        if (abs(b[i])%minrastojanje==0)
            return false;
    }
    return true;

}
void unos()
{
    long long int i,j,p;
    cin>>t;
    for(j=0;j<t;j++)
    {
        cin>>n>>m;
        a.clear();
        b.clear();
        for(i=0;i<n;i++)
        {
            cin>>p;
            a.push_back(p);
        }
        for(i=0;i<m;i++)
        {
            cin>>p;
            b.push_back(p);
        }
        p=obrada();
        rez.push_back(p);
    }
    for(i=0;i<t;i++)
        cout<<rez[i]<<endl;
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    unos();
    return 0;
}