#include<bits/stdc++.h>
using namespace std;
int n,m,tv,s,v[500005],k,l;
bool f[500005];
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>tv>>s;
int t=1;
while(t<=s)
{
v[++k]=tv*t;
s-=t;
t*=2;
}
if(s>0) v[++k]=tv*s;
}
for(int kkk=1;kkk<=m;kkk++)
{
int t;
cin>>t;
memset(f,0,sizeof(f));
f[0]=1;
for(int i=1;i<=k;i++)
{
for(int j=t;j>=0;j--)
{
if(f[j]==1)
{
f[j+v[i]]=1;
}
}
}
if(f[t]) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;
}
莫名其妙