#include <bits/stdc++.h>
using namespace std;
long long t, m, n, da[76000], ne[76000], raz, mn;

int main () {
cin >> t;


while (t--) {
    queue <long long> del;
    raz=9999999999999;
    cin >> n >> m;

    cin >> da[1];
    for (int i=2; i<=n; i++) {
        cin >> da[i];
        raz=min(raz, da[i]-da[i-1]);
    }


    for (int i=1; i<=m; i++) {
        cin >> ne[i];
}


del.push(raz);
   for (int i=2; i<=sqrt(raz)+1; i++) {
    if (raz%i==0)
        del.push(i);
   }


   bool b;
while (del.size()>0) {
    b=false;
   for (int i=2; i<=n; i++) {
    if ((da[i]-da[i-1])%del.front()!=0) {
        b=true;
    }
}
if (!b) {
    mn=da[1]%del.front();
    int x=del.front();
    for (int i=1; i<=m; i++) {
        if (ne[i]%x==mn) {
            b=true;
        }
    }
}
if (!b) {
    break;
}
del.pop();

}
if (!b){
    cout << 1 << endl;
}
else cout << 0 << endl;

}


return 0;
}