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

#define BIG 2000000007

#define MOD 1000000007
typedef unsigned long long ull;
typedef   signed long long sll;


#define N_MAX 20
#define M_MAX 2000

ull n, m;
ull a[N_MAX];
ull b[M_MAX][N_MAX];

void swap_adj(ull *a, ull *b){
	ull tmp = *b;
	*b = *a;
	*a = tmp;
	return;
}

int comp(const void *a, const void *b){
	if (*(ull*)a < *(ull*)b) {
		return -1;
	} else if (*(ull*)a > *(ull*)b) {
		return +1;
	} else {
		return 0;
	}
}

ull divide(ull a, ull b){
	ull x = MOD - 2;
	ull ans = 1;
	while (x) {
		if (x & 1) ans = (ans * b) % MOD;
		b = (b * b) % MOD;
		x /= 2;
	}
	return (a * ans) % MOD;
}

int digits(ull x){
	int i = 1;
	while (x >= 10) {
		x /= 10;
		i++;
	}
	return i;
}

ull solve(ull x, ull index){
	ull ifuse = 0;

	// printf("%llu %llu\n", x, index);

	if (index == n) {
		if (x == 0) return 1;
		else return 0;
	}

	if (b[x][index]) return 0;

	if ((a[index] <= x && solve(x - a[index], index + 1)) || solve(x, index + 1)) {
		return 1;
	} else {
		b[x][index] = 1;
		return 0;
	}
}

int main(void){
	ull i, j;

	scanf("%llu", &n);
	for (i = 0; i < n; i++) {
		scanf("%llu", &a[i]);
	}
	scanf("%llu", &m);

	for (i = 0; i < m; i++) {
		ull x;
		int i, j;
		scanf("%llu", &x);
		for (i = 0; i < x; i++) for (j = 0; j < n; j++) b[i][j] = 0;
		if (solve(x, 0))
			puts("yes");
		else
			puts("no");
	}

	return 0;
}