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

int *array;
int n;
int dp[21][2000];

int _dfs(int idx, int sum) {
    if(dp[idx][sum] != -1) {
        return dp[idx][sum];
    } else if(sum == 0) {
        return dp[idx][sum] = 1;
    } else if(sum < 0) {
        return dp[idx][sum] = 0;
    } else if(idx >= n) {
        return dp[idx][sum] = 0;
    } else if(_dfs(idx + 1, sum - array[idx])) {
        return dp[idx][sum] = 1;
    } else if(_dfs(idx + 1, sum)) {
        return dp[idx][sum] = 1;
    }

    return 0;
}

bool dfs(int x) {
    memset(dp, -1, sizeof(dp));

    return _dfs(0, x);
}

int main(void) {

    scanf("%d", &n);
    array = malloc(n * sizeof(int));
    for(int i = 0; i < n; i++) {
        scanf("%d", &array[i]);
    }

    int q;
    scanf("%d", &q);
    int *m = malloc(q * sizeof(int));

    for(int i = 0; i < q; i++) {
        scanf("%d", &m[i]);
    }
    
    for(int i = 0; i < q; i++) {
        puts(dfs(m[i]) ? "yes" : "no");
    }

    free(array);
    free(m);
    return 0;
}
