#include <bits/stdc++.h>

using namespace std;

vector<long long> nadjiDelioce(long long razlika){
    vector<long long> delioci;
    for(long long i = 1 ; i <= sqrt(razlika) ; i++){
        if(razlika % i == 0){
            if(razlika / i == i) delioci.push_back(i);
            else delioci.push_back(i), delioci.push_back(razlika / i);
        }
    }
    return delioci;
}

int main()
{
    long long t, n, m;
    cin >> t;
    for(long long i = 0 ; i < t ; i++){
        long long mini = 9999999999999999999999999;
        long long razlika = mini;
        cin >> n >> m;
        vector<long long> godine;
        for(long long j = 0 ; j < n ; j++){
            long long godina;
            cin >> godina;
            if(mini > godina){
                razlika = mini;
                mini = godina;
            }
            else{
                razlika = min(razlika, godina);
            }
            godine.push_back(godina);
        }
        razlika = razlika - mini;
        vector<long long> delioci = nadjiDelioce(razlika);
        for(long long p = 0 ; p < m ; p++){
            long long pomocna;
            cin >> pomocna;
            for(long long z = 0 ; z < delioci.size() ; z++){
                if((pomocna - mini) % delioci[z] == 0) delioci.erase(delioci.begin() + z, delioci.begin() + z + 1);
            }
        }
        if(delioci.empty()) cout << 0 << endl;
        else cout << 1 << endl;

    }
    return 0;
}