#include #define MAX 10000005 #define ll long long #define upperlimit 1000100 #define INF 1e18 #define inf 1e9 #define eps 1e-8 #define endl '\n' #define pcc pair #define pii pair #define pll pair #define tr(container,it) for(typeof(container.begin()) it=container.begin();it!=container.end();it++) #define mod 1000000007 #define slld(t) scanf("%lld",&t) #define sd(t) scanf("%d",&t) #define pd(t) printf("%d\n",t) #define plld(t) printf("%lld\n",t) #define mp(a,b) make_pair(a,b) #define FF first #define SS second #define pb(x) push_back(x) #define vi vector #define clr(a) memset(a,0,sizeof(a)) #define debug(a) printf("check%d\n",a) #define ios ios::sync_with_stdio(false);cin.tie(0); using namespace std; ll a[1000004]; ll tree[1000000]; ll gcd(ll i,ll j) { if(j==0)return i; if(i==0)return j; if(i%j==0)return j; return gcd(j,i%j); } void build(int node, int start, int end) { if(start == end)tree[node] = a[start]; else{ long mid = (start + end) / 2; build(2*node, start, mid); build(2*node+1, mid+1, end); tree[node] = gcd(tree[2*node],tree[2*node+1]); }} long long int query(long node, long start, long end, long l, long r){ if(l>r) return 0; if(r < start || end < l)return 0; if(l <= start and end <= r) {return tree[node];} int mid = (start + end) / 2; if(r<=mid)return query(2*node, start, mid, l, r); if(l>=mid+1)return query(2*node+1, mid+1, end, l, r); long long int p1 = query(2*node, start, mid, l, r); long long int p2 = query(2*node+1, mid+1, end, l, r); return gcd(p1,p2); } void update(long node,long start,long end,long ind,long val) { if(start==end) { tree[node]=val;return; } int mid = (start + end) / 2; if(ind<=mid)update(2*node, start, mid, ind, val); else update(2*node+1, mid+1, end, ind, val); tree[node] = gcd(tree[2*node],tree[2*node+1]); } int ans1[1000000]; int main() { int n,q; cin>>n>>q; while(q--) { int x=rand()%2; if(x&1) cout<<"Yes"<