#include<bits/stdc++.h>
#define int long long
#define pb push_back
#define F first
#define S second
#define all(x) x.begin(),x.end()

const double eps=1e-7,PI=3.1415926;
const int N=1e6+10;

using namespace std;

int n,q,m,k,x,y,a[N],mx=-1,mn=1e9,sum,fr[N];
string s,s1,s2;
unordered_map < int , int > mp;
vector < int > vec;

void dp(int i,int j){
    if (i>j)return;
    mp[fr[j]-fr[i-1]]=1;
    if (a[i]==a[j])return;
    int mid=(a[i]+a[j])/2;
    int idx=lower_bound(a+i,a+j+1,mid+1)-a;
    dp(i,idx-1);
    dp(idx,j);
    return ;
}

int32_t main(){
    scanf("%lld",&q);
    while (q--){
        scanf("%lld%lld",&n,&m);
        for (int i=0;i<n;i++){
            cin>>a[i];
        }
        sort(a,a+n);
        for (int i=0;i<n;i++)
            fr[i]=fr[i-1]+a[i];
        dp(0,n-1);
        while (m--){
            cin>>x;
            if (mp[x])printf("Yes\n");
            else printf("No\n");
        }
        mp.clear();
        for (int i=0;i<n;i++)fr[i]=0;
    }
    return 0;
}
