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

#define TRUE 1
#define FALSE 0

int solve(int, int, int, int A[]);

int main()
{
  int i, n, *A, q, m;

  scanf("%d", &n);

  /* 数列Aを動的に確保し、読み込む　*/
  A = (int *)malloc( sizeof(int) * n );
  for( i = 0; i<n; i++ )
    scanf("%d", &A[i]);

  scanf("%d", &q);
  for( i = 0; i<q; i++ )
    {
      scanf("%d", &m);

      /* Aの要素の中のいくつかの要素を足し合わせてmが作れるか判定し、結果を出力　*/
      if( solve(0, m, n, A) == TRUE )
	printf("yes\n");
      else
	printf("no\n");
    }
  return 0;
}

/* Aの要素の中のいくつかの要素を足し合わせてmが作れるかを判定する関数
   引数：　i-> Aの添え字　　n-> Aの要素数　
　　戻り値：　作れる-> TRUE　　　作れない-> FALSE */
int solve(int i, int m, int n, int A[])
{
  if( m == 0 )
    return TRUE;
  if( i >= n )
    return FALSE;

  return solve( i+1, m, n, A) || solve( i+1, m-A[i], n, A);     /* 左の呼び出し：A[i]を選択しない場合
　右の呼び出し：A[i]を選択した場合*/
}

