#include <iostream>
#define N 75000
using namespace std;
long long nzd(long long a,long long b){
    if(b==0) return a;
    return(b,a);
}
int main()
{
    long long n;
    int M;
    int ljudi;
    cin>>ljudi;
    long long A[N];
    long long B[N];
    for(int i=0;i<ljudi;i++){
        cin>>n;
        cin>>M;
        n--;
        long long prvi;
        cin>>prvi;
        long long a;
        for(int j=0;j<n;j++){
            cin>>a;
            A[j]=a-prvi;
            if(A[j]<0) A[j]*=-1;
            prvi=a;
        }
        long long b;
        for(int j=0;j<M;j++){
            cin>>b;
            B[j]=b;
        }
        long long NZD=A[0];
        for(int j=1;j<n;j++){
            NZD=nzd(NZD,A[j]);
        }
        if(NZD!=1){
            long long k=A[0]%NZD;
            bool radi=true;
            for(int j=0;j<M;j++){
                if((B[j]-k)%NZD==0) radi=false;
            }
            if(radi) cout<<1<<endl;
            else cout<<0<<endl;
        }
        else cout<<0<<endl;
        cout<<NZD<<endl;
    }
    return 0;
}