#include <iostream>
#include <cmath>
using namespace std;
long long A[1000000],B[1000000],C[1000000];
long long nzd(long long a,long long b){
	if (a==0)return b;
	return nzd(b%a,a);
}
int main(){
	long long N,M,T,v=-1,minc,nzp,tf,minne;
	ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    cin >> T;
    cin >> N >> M;
    for(int i=0;i<T;i++){
    for(int i=0;i<N;i++)cin >> A[i];
    for(int i=0;i<M;i++)cin >> B[i];
   	for(int i=0;i<N;i++){
   		if(A[i+1]!=0){   
	   	C[i]=abs(A[i]-A[i+1]);
	   	v++;
}
}
	nzp=nzd(C[0],C[1]);
	for(int i=0;i<v;i++){
	if(C[i+1]!=0){
			if(nzd(C[i],C[i+1]<nzp))
			nzp=nzd(C[i],C[i+1]);
}
}
	minne=B[0];
	for(int i=0;i<M;i++)if(B[i]<minne)minne=B[i];
	for(int i=0;i<v;i++)if(C[i]%nzp==0)tf=1;
	else tf=0;
	for(int i=0;i<v;i++)if(C[i+1]!=0){
			if((long long)abs(C[i]-minne)%nzp!=0)tf=1;
			else tf=0;
	}
	if(tf==1)cout << "1";
	else cout << "0";
}
return 0;
}