#include<bits/stdc++.h>
using namespace std;
int n,m,d,x,y,ans,tot=1,fa[150005];
int find(int a) {
if (fa[a] == a)
return a;
fa[a] = find(fa[a]);
return fa[a];
}
void merge(int a,int b) {
int A=find(a);
int B=find(b);
fa[A]=B;
return;
}
int main() {
scanf("%d %d",&n,&m);
for (int i=1;i<=n;i++) fa[i]=i,fa[i+n]=i+n,fa[i+2*n]=i+2*n;
for (int i=1;i<=m;i++) {
scanf("%d %d %d",&d,&x,&y);
if (x>n||y>n||x<0||y<0) ans++;
else if (d==1) {
if (find(x)==find(y+2*n)||find(x)==find(y+n)) ans++;
else merge(x,y),merge(x+n,y+n),merge(x+2*n,y+2*n);
} else {
if (find(x)==find(y+2*n)||find(x)==find(y)) ans++;
else merge(x,y+n),merge(x+n,y+2*n),merge(x+2*n,y);
}
}
printf("%d",ans);
return 0;
}