#include<bits/stdc++.h>
using namespace std;
const int N = 2e5+5;
int n , m, p[N][3],sz[N][3];
vector<pair<int,int>> checklist;
struct edge{
int u,v,w;
};
vector<edge> e;
int get(int u,int t){
if(u != p[u][t]){
p[u][t] = get(p[u][t],t);
}
return p[u][t];
}
bool join(int u,int v,int t){
u = get(u,t);
v = get(v,t);
if(u == v) return false;
if(sz[u][t] > sz[v][t]) swap(u,v);
sz[v][t] +=sz[u][t];
p[u][t] =v;
return true;
}
int main(){
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> n >> m;
for(int i=0 ;i <=n;i++) for(int j=1;j<=2;j++) {p[i][j]=i; sz[i][j] =1;};
for(int i=1;i<=m;i++){
int x,u,v;
cin >> x >> u >> v;
bool check = true;
join(u,v,x);
checklist.push_back({u,v});
for(int j = checklist.size()-1;j >=0;j--){
u = checklist[j].first; v = checklist[j].second;
int u1= get(u,1); int v1 = get(v,1);
int u2 = get(u,2); int v2 = get(v,2);
if(u1 == v1 && u2 ==v2){
checklist.pop_back();
}
else break;
}
if(checklist.size()){
cout << "No\n";
}
else cout << "Yes\n";
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBOID0gMmU1KzU7CmludCBuICwgbSwgcFtOXVszXSxzeltOXVszXTsKdmVjdG9yPHBhaXI8aW50LGludD4+IGNoZWNrbGlzdDsKCnN0cnVjdCBlZGdlewogICAgaW50IHUsdix3Owp9Owp2ZWN0b3I8ZWRnZT4gZTsKCmludCBnZXQoaW50IHUsaW50IHQpewogICAgaWYodSAhPSBwW3VdW3RdKXsKICAgICAgICBwW3VdW3RdID0gZ2V0KHBbdV1bdF0sdCk7CgogICAgfQogICAgcmV0dXJuIHBbdV1bdF07Cn0KCmJvb2wgam9pbihpbnQgdSxpbnQgdixpbnQgdCl7CiAgICB1ID0gZ2V0KHUsdCk7CiAgICB2ID0gZ2V0KHYsdCk7CiAgICBpZih1ID09IHYpIHJldHVybiBmYWxzZTsKICAgIGlmKHN6W3VdW3RdID4gc3pbdl1bdF0pIHN3YXAodSx2KTsKICAgIHN6W3ZdW3RdICs9c3pbdV1bdF07CiAgICBwW3VdW3RdID12OwoKICAgIHJldHVybiB0cnVlOwp9CgoKCmludCBtYWluKCl7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgIGNpbiA+PiBuID4+IG07CiAgICBmb3IoaW50IGk9MCA7aSA8PW47aSsrKSBmb3IoaW50IGo9MTtqPD0yO2orKykge3BbaV1bal09aTsgc3pbaV1bal0gPTE7fTsKCiAgICBmb3IoaW50IGk9MTtpPD1tO2krKyl7CiAgICAgICAgaW50IHgsdSx2OwogICAgICAgIGNpbiA+PiB4ID4+IHUgPj4gdjsKICAgICAgICBib29sIGNoZWNrID0gdHJ1ZTsKICAgICAgICBqb2luKHUsdix4KTsKICAgICAgICBjaGVja2xpc3QucHVzaF9iYWNrKHt1LHZ9KTsKCgogICAgICAgIGZvcihpbnQgaiA9IGNoZWNrbGlzdC5zaXplKCktMTtqID49MDtqLS0pewogICAgICAgICAgICB1ID0gY2hlY2tsaXN0W2pdLmZpcnN0OyB2ID0gY2hlY2tsaXN0W2pdLnNlY29uZDsKICAgICAgICAgICAgaW50IHUxPSBnZXQodSwxKTsgaW50IHYxID0gZ2V0KHYsMSk7CiAgICAgICAgICAgIGludCB1MiA9IGdldCh1LDIpOyBpbnQgdjIgPSBnZXQodiwyKTsKCiAgICAgICAgICAgIGlmKHUxID09IHYxICYmIHUyID09djIpewogICAgICAgICAgICAgICAgY2hlY2tsaXN0LnBvcF9iYWNrKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBicmVhazsKCiAgICAgICAgfQogICAgICAgIGlmKGNoZWNrbGlzdC5zaXplKCkpewogICAgICAgICAgICBjb3V0IDw8ICJOb1xuIjsKICAgICAgICB9CiAgICAgICAgZWxzZSBjb3V0IDw8ICJZZXNcbiI7CiAgICB9CgoKCn0K