#include<bits/stdc++.h>
using namespace std;
const int N=1e5+7;
using ll=long long;
using ull=unsigned long long;
int a[N];
int n,t,ans=-1;
ull q;
vector<int>v;
void dfs(int neng,int i,ull j){
if(i>n){
if(j==q){
ans=max(ans,neng);
}
return ;
}
if(neng>=a[i]){
dfs(neng-a[i],i+1,j+1);
dfs(neng,i+1,j);
}
else{
dfs(neng,i+1,j);
dfs(neng+a[i],i+1,j+1);
}
}
int main(){
cin>>n>>t;
for(int i=1;i<=n;i++){
cin>>a[i];
}
while(t--){
v.clear();
ans=-1;
cin>>q;
dfs(0,1,0);
if(ans==-1) cout<<0<<"\n";
else cout<<ans<<"\n";
}
return 0;
}