#include <bits/stdc++.h>
using namespace std;

const int maxn=75005;

long long a[maxn], b[maxn], n, m;

long long nzd(long long a, long long b){
	if(b==0) return a;
	return nzd(b, a%b);
}

int main(){
	int t; cin>>t;
	while(t--){
		long long minn=1e18, x;
		cin>>n>>m;
		for(int i=0; i<n; i++) cin>>a[i], minn=min(minn, a[i]);
		for(int i=0; i<m; i++) cin>>b[i];
		x=nzd(a[0]-minn, a[1]-minn);
		for(int i=2; i<n; i++) x=nzd(x, a[i]-minn);
		bool q=1;
		for(int i=0; i<m; i++)
			q*=(b[i]-minn)%x;
		cout<<q<<endl;
	}
	return 0;
}