//
//  main.cpp
//  zalbe
//
//  Created by Lazar on 21.11.20..
//

#include <iostream>
using namespace std;
int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    int T;
    cin >> T;
    for(int i = 0; i < T; i++){
        int N, M;
        bool jedanilinula = true;
        cin >> N >> M;
        int n[N], m[M];
        for(int i = 0; i < N; i++) {
            cin >> n[i];
        }
        for(int i = 0; i < M; i++){
            cin >> m[i];
        }
        sort(&n[0], &n[N - 1]);
        long long min = n[1] - n[0];
        for(int i = 2; i < N; i++) {
            if(n[i] - n[i - 1] < min) min = n[i] - n[i - 1];
        }
        int p = n[0] % min;
        for(int i = 1; i < N; i++){
            if(n[i] % min != p) {
                jedanilinula = false;
                break;
            }
        }
        for(int i = 0; i < M; i++){
            if(m[i] % min == p) {
                jedanilinula = false;
                break;
            }
        }
        //cout << endl << min << endl;
        if(jedanilinula) cout << 1 << endl;
        else cout << 0 << endl;
    }
    return 0;
}