#include<bits/stdc++.h>
using namespace std;
int NZD(long a, long b)
{
   if (b==0)
   return a;
   return NZD(b, a%b);
}
int NZDN(long a[],int n)
{
    for(int i=1;i<n;i++)
        a[i]=NZD(a[i],a[i-1]);
    return a[n-1];
}
int main()
{
    string resenje="";
    int T;
    cin>>T;
    for(int i=0;i<T;i++)
    {
        int n,m;
        cin>>n>>m;
        bool p=false;
        if(m==0) p=true;
        else{
            long a[n];
            long b[m];
            for(int j=0;j<n;j++)
                cin>>a[i];
            for(int k=0;k<m;k++)
                cin>>b[i];
            long razA[n-1];
            for(int l=0;l<n-1;l++)
            {
                razA[l]=abs(a[l]-a[l+1]);
                cout<<razA[l]<<endl;
            }
            int nz=NZDN(razA,n);
            cout<<nz<<endl;
            if(nz==1) p=true;
            else
            {
                for(int h=0;h<m;h++)
                    if(abs(razA[0]-b[h])%nz==0){
                        p=false;
                        break;
                    }
            }
            if(p) resenje+="0 ";
            else resenje+="1 ";
        }

    }
    cout<<resenje;
}