#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int cnt=0;
ll addone(ll n) {
ll res = 0;
ll carry = 0;
ll factor = 1;
if (n == 0) return 1;
while (n > 0 || carry > 0) {
ll digit = n % 10 + 1 + carry;
carry = digit / 10;
digit %= 10;
res += digit * factor;
factor *= 10;
n /= 10;
}
//cout<<"=="<<res<<endl;
return res;
}
bool judge(ll n, ll m) {
if (n == m) return true;
unordered_set<ll> visited;
queue<int> q;
q.push(n);
visited.insert(n);
for (int i = 0; i < 32 && !q.empty(); ++i) {
int levelSize = q.size();
for (int j = 0; j < levelSize; ++j) {
int curr = q.front();
q.pop();
vector<ll> nextNums = {addone(curr), curr / 2};
for (ll next : nextNums) {
if (next == m) return true;
if (visited.find(next) == visited.end()) {
q.push(next);
visited.insert(next);
}
}
}
}
return false;
}
int main(){
ll n, q;
cin >> n >> q;
for(int i = 0; i < q; i++){
ll m;
cin >> m;
cnt = 0;
if(judge(n, m) == true) cout << "YES" << endl;
else cout << "NO" << endl;
}
return 0;
}
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}