#include<bits/stdc++.h>
using namespace std;
int f[50001],p[50001],q[50001];
int find(int x){
if(x==f[x])return x;
return find(f[x]);
}
void hb(int x,int y){
f[find(x)]=find(y);
}
int main(){
int n,k,ans=0;
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++){
f[i]=i;
}
for(int i=1;i<=k;i++){
int ch,x,y;
scanf("%d%d%d",&ch,&x,&y);
if(x>n||y>n){
ans++;
continue;
}
else if(ch==1&&(find(q[x])==y||find(p[x])==y||find(q[y])==x||find(p[y])==x)){
ans++;
continue;
}
else if(find(x)==find(y)&&ch==2){
ans++;
continue;
}
else if(ch==2&&find(q[x])==y||find(p[y])==x){
ans++;
continue;
}
else if(ch==2&&(find(p[x])!=find(y)||find(q[y])!=find(x)))
if(ch==1){
hb(x,y);
}
else{
if(p[x]==0){
p[x]=find(y);
}
else{
p[x]=find(p[x]);
hb(p[x],y);
}
if(q[y]==0){
q[y]=find(x);
}
else{
q[y]=find(q[y]);
hb(q[y],x);
}
}
}
printf("%d",ans);
return 0;
}