#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int *numbers;
int *used;

int ncr(int n, int r)
{
  int val=1;
  for (int i=0; i<r; i++)  val = val * (n-i) / (i+1);
  return val;
}

void combination(int *A, int n, int k, int m, int *aa)
{
  static int ii=0;
  if (m==k) {
    int sum=0;
    for (int i=0; i<k; i++) {
      sum += A[numbers[i]];
    }
    aa[ii++]=sum;
  } else {
    for (int i=0; i<n; i++) {
      if (m>0 && numbers[m-1]<i) continue;
      if (used[i]) continue;
      numbers[m] = i;
      used[i]=1;
      combination(A, n, k, m+1, aa);
      used[i]=0;
    }
  }
}
int main()
{
  int i, j, m, n, q;
  int ncomb=0;
  fscanf(stdin, "%d", &n);
  numbers = (int*)malloc(sizeof(int)*n);
  used = (int*)malloc(sizeof(int)*n);
  bzero(used, sizeof(int)*n);
  int A[n];
  for (i=0; i<n; i++) {
    ncomb += ncr(n, i+1);
    fscanf(stdin, "%d", A+i);
  }

  int *aa = (int*)malloc(sizeof(int)*ncomb);
  for (i=1; i<=n; i++)
    combination(A, n, i, 0, aa);

  fscanf(stdin, "%d", &q);
  for (i=0; i<q; i++) {
    fscanf(stdin, "%d", &m);
    for (j=0; j<ncomb; j++) {
      if (m==aa[j]) {
        puts("yes");
        break;
      }
    }
    if (j==ncomb)  puts("no");
  }
  return 0;
}
