#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

bool postoji_x(int n,int m, vector<long long int> prihvacene,vector<long long int> neprihvacene){
    bool postoji_li=true;
    sort(prihvacene.begin(),prihvacene.end());
    vector<int> svaka_razlika(n-1);
    for(int i=0;i<n-1;i++){
        svaka_razlika[i]=prihvacene[i+1]-prihvacene[i];
    }
    sort(svaka_razlika.begin(),svaka_razlika.end());
    int potencijalno_x=svaka_razlika[0];
    for(int i=0;i<n-1;i++){
        if(svaka_razlika[i]%potencijalno_x!=0){
            postoji_li=false;
            break;
        }
    }
    for(int i=0;i<m;i++){
        if((neprihvacene[i]-prihvacene[0])%potencijalno_x==0){
            postoji_li=false;
            break;
        }
    }
    return postoji_li;
}

int main()
{
    ios_base::sync_with_stdio(false); cin.tie(0);
    int t;
    cin>>t;
    int takmicari[t];
    for(int i=0;i<t;i++){
        int n,m;
        cin>>n>>m;
        vector<long long int>prihvacene(n);
        vector<long long int>neprihvacene(m);
        for(int i=0;i<n;i++){
            cin>>prihvacene[i];
        }
        for(int i=0;i<m;i++){
            cin>>neprihvacene[i];
        }
        takmicari[i]=postoji_x(n,m,prihvacene,neprihvacene);
    }
    for(int i=0;i<t;i++){
        cout<<takmicari[i]<<endl;
    }
    return 0;
}