#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    int T;
    cin>>T;
    int niz[T];
    for(int i=0;i<T;i++){
        int N,M;
        cin>>N>>M;
        long double sr;
        long double x=powl(10,18);
        long double minx=powl(10,18);
        long double br[N];
        cin>>br[0];
        if(minx>br[0]) minx=br[0];
        for(int j=1;j<N;j++){
            cin>>br[j];
            if(minx>br[j]) minx=br[j];
            if(abs(br[j]-br[j-1])<x) x=abs(br[j]-br[j-1]);
        }
        int broj=0;
        for(int j=0;j<M;j++){
            long double y;
            cin>>y;
            if(y>minx){
                long double t=0;
                t=(y-minx)/x;
                if(floor(t)!=t && t>=0) broj++;
            }
            else{
                long double t=0;
                t=(minx-y)/x;
                if(floor(t)!=t && t>=0) broj++;
            }
        }
        if(broj==M) niz[i]=1;
        else niz[i]=0;
    }
    for(int i=0;i<T;i++) cout<<niz[i]<<endl;
    return 0;
}