#include <iostream>
#include <vector>
#include <math.h>
#include <algorithm>

using namespace std;

bool pripada_ap(long long a0,long long diff,long long br){
	if ((br-a0)%diff==0) return true;
	return false;
}

int main(){
	ios_base::sync_with_stdio(false);
	int n,m,t;
	cin >> t;
	int out[t];
	for (int br=0;br<t;br++){
		cin >> n >> m;
		long long a[n],b[m];
		for(int i=0;i<n;i++){
			cin >> a[i];
		}
		for(int i=0;i<m;i++){
			cin >> b[i];
		}
		sort(a,a+n);
		sort(b,b+m);
		long long razlika = a[1]-a[0];
		for (int delioc=2;delioc<=razlika;delioc++){
			bool sve_ok = false;
			if (razlika%delioc!=0) continue;
			for (int i=0;i<n;i++){
				if (not(pripada_ap(a[0],delioc,a[i]))) break;
				if (i==n-1) sve_ok = true;
			}
			if (not(sve_ok)) break;
			for (int i=0;i<m;i++){
				if (pripada_ap(a[0],delioc,b[i])) break;
				if (i==m-1) out[br] = 1;
			}
		}
		if (out[br]!=1) out[br] = 0;
	}
	for (auto x : out) cout << x << '\n';
}