#include <bits/stdc++.h>
using namespace std;
int f[50005],dis[50005];
const int mod=4;
int find(int x){
if(x!=f[x]){
int root = find(f[x]);
dis[x] = (dis[x] + dis[f[x]]) % mod;
f[x] = root;
}
return f[x];
}
int main()
{
ios::sync_with_stdio(false);
int n,m,cnt=0;
cin>>n>>m;
for(int i=1;i<=n;i++) f[i]=i;
while(m--){
int t,x,y;
cin>>t>>x>>y;
if (x<1||x>n||y<1||y>n||t!=1&&x==y){
cnt++;
continue;
}
int k=t-1;
int px=find(x),py=find(y);
if(px==py&&((dis[x]-dis[y])%mod+mod)%mod!=k){
cnt++;
continue;
}
if(px!=py){
f[px]=py;
dis[px]=((k-dis[x]+dis[y])%mod+mod)%mod;
}
}
cout<<cnt;
return 0;
}