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

using namespace std;


int main()
{
    short int t;
    cin >> t;
    short int a[5];
    int n, m;
    cin >> n >> m;
    long long int pomocko;
    long long int minraz;
    vector<long long int> prvi;
    vector<long long int> drugi;
    bool provera = true;
    for (int i = 0; i < n; i++) {
        cin >> pomocko;
        prvi.push_back(pomocko);
    }

    for (int i = 0; i < m; i++) {
        cin >> pomocko;
        drugi.push_back(pomocko);
    }

    sort(prvi.begin(), prvi.end());
    minraz = prvi[1] - prvi[0];
    for (int i = 2; i < prvi.size(); i++) {
        if (prvi[i] - prvi[i - 1] < minraz) {
            minraz = prvi[i] - prvi[i - 1];
        }
    }
    if (minraz == 1) {
        a[0] = 0;
    }
    else {
        for (int i = 1; i < prvi.size(); i++) {
            if ((prvi[i] - prvi[0]) % minraz != 0) {
                provera = false;
                a[0] = 0;
                break;
            }
        }
        if (provera) {
            for (int i = 0; i < drugi.size(); i++) {
                if ((drugi[i] - prvi[0]) % minraz == 0) {
                    provera = false;
                    break;
                }
            }
        }
    }
    if (provera) {
        a[0] = 1;
    }
    else {
        a[0] = 0;
    }

    for (int i = 1; i < t; i++) {
        provera = true;
        prvi.clear();
        drugi.clear();
        cin >> n >> m;;
        for (int j = 0; j < n; j++) {
            cin >> pomocko;
            prvi.push_back(pomocko);
        }

        for (int j = 0; j < m; j++) {
            cin >> pomocko;
            drugi.push_back(pomocko);
        }

        sort(prvi.begin(), prvi.end());
        minraz = prvi[1] - prvi[0];
        for (int j = 2; j < prvi.size(); j++) {
            if (prvi[j] - prvi[j - 1] < minraz) {
                minraz = prvi[j] - prvi[j - 1];
            }
        }
        if (minraz == 1) {
            a[i] = 0;
        }
        else {
            for (int j = 1; j < prvi.size(); j++) {
                if ((prvi[j] - prvi[0]) % minraz != 0) {
                    provera = false;
                    a[i] = 0;
                    break;
                }
            }
            if (provera) {
                for (int j = 0; j < drugi.size(); j++) {
                    if ((drugi[j] - prvi[0]) % minraz == 0) {
                        provera = false;
                        break;
                    }
                }
            }
        }
        if (provera) {
            a[i] = 1;
        }
        else {
            a[i] = 0;
        }

    }
    for (int i = 0; i < t; i++) {
        cout << a[i] << endl;
    }
}