#pragma GCC optimize("Ofast")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#include <bits/stdc++.h>
#define lli long long int
#define loop(i,x,n) for(lli i=x;i<n;i++)
#define loopr(i,x,n) for(lli i=n-1;i>=x;i--)
#define time ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cout.setf(ios::fixed); cout.setf(ios::showpoint);
#define test lli t; cin>>t; while(t--)
#define mod 1000000007
using namespace std;
map<lli,lli> isThere;
vector<lli> sum(100002);
vector<lli> a;
void doThisFirst(lli s, lli e)
{
    if(e==s)
    {
        isThere[a[s]]++;
        return;
    }
    if(a[s]<a[e] || (a[s]==a[e] && s<e))
    {
        bool ok=false;
        if(a[s]==a[e]) ok=true;
        isThere[(sum[e]-sum[s]+a[s])]++;
        lli x = a[e]+a[s];
        x/=2;
        auto it = upper_bound(a.begin(),a.end(),x);
        lli y = it-a.begin()-1;
        if(!ok)
        {
            doThisFirst(s,y);
            doThisFirst(y+1,e);
        }
    }
    else return;
}
int main()
{
    time
    test
    {
        isThere.clear();
        lli n,m,x;
        cin>>n>>m;
        a.resize(n);
        loop(i,0,n) cin>>a[i];
        sort(a.begin(),a.end());
        sum[0]=a[0];
        loop(i,1,n) sum[i]=sum[i-1]+a[i];
        doThisFirst(0LL,n-1);
        loop(i,0,m)
        {
            cin>>x;
            cout<<(isThere[x] ? "Yes\n" : "No\n");
        }
    }
    return 0;
}