#include
#include
#include
#include
using namespace std;
typedef pair p;
const int maxn=20001;
const int maxm=50001;
const int inf=0x3f3f3f3f;
int a[maxn],dis[maxm]; //dis[r]表示所有模a1余r的数中,能被表示出来的最小的数
bool vis[maxm];
priority_queue,greater
> pq;
inline void dijkstra(int sz,int s)
{
memset(dis,inf,sizeof(dis));
memset(vis,false,sizeof(vis));
dis[s]=0;
pq.push(p(s,0));
int u,d;
while(!pq.empty())
{
u=pq.top().first;
d=pq.top().second;
pq.pop();
if(vis[u])
continue;
vis[u]=true;
for(int i=1;i<=sz;i++)
if(d+a[i]= dis[(x % a[1])])
return true;
else
return false;
}
int main()
{
int T;
scanf("%d",&T);
int n,q,t;
while(T--)
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
dijkstra(n,0);
scanf("%d",&q);
while(q--)
{
scanf("%d",&t);
if(query(t))
printf("YES
");
else
printf("NO
");
}
}
return 0;
}