#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 50005;
int f[N],d[N];
int find(int a)
{
int fa=f[a];
if(a!=fa)
{
int xx=f[a];
f[a]=find(f[a]);
d[a]=(d[a]+d[xx])%3;
}
return f[a];
}
int main()
{
int n,k,ans=0;
cin>>n>>k;
for(int i=1;i<=n;i++)
{
f[i]=i;d[i]=0;
}
while(k--)
{
int p,x,y;
cin>>p>>x>>y;
if(x>n||y>n)
{
ans++;continue;
}
if(p==2&&x==y)
{
ans++;continue;
}
int f1=find(x),f2=find(y);
if(p==1)
{
if(f1==f2)
{
if(d[x]!=d[y])
ans++;
}
else
{
d[f[x]]=(d[y]-d[x]+3)%3;
f[f[x]]=f[y];
}
}
if(p==2)
{
if(f1==f2)
{
if(d[x]!=(d[y]+1)%3)ans++;
}
else
{
d[f[x]]=(d[y]-d[x]+4)%3;
f[f[x]]=f[y];
}
}
}
cout<<ans<<endl;
return 0;
}