#include<bits/stdc++.h>
using namespace std;
const int N=5e4+5;
int n,k,x,y,z,ans,fa[N*3];
int myself(int x)
{
return x;
}
int myeat(int x)
{
return (x+n-1)%(n*3)+1;
}
int mybeawhoch(int x)
{
return (x+(n*2)-1)%(n*3)+1;
}
int find(int x)
{
if(fa[x]==x) return x;
return find(fa[x]);
}
void merge(int x,int y)
{
if(find(x)!=find(y))
{
fa[find(y)]=find(x);
}
}
void pdtl(int x,int y)
{
if(myeat(x)==mybeawhoch(y))
{
ans++;
}
else if(mybeawhoch(x)==myeat(y))
{
ans++;
}
else
{
merge(myeat(x),myeat(y));
merge(mybeawhoch(x),mybeawhoch(y));
merge(myself(x),myself(y));
}
}
void pdbs(int x,int y)
{
if(myeat(x)==mybeawhoch(y))
{
ans++;
}
else if(mybeawhoch(x)==myeat(y))
{
ans++;
}
else
{
merge(myself(x),myeat(y));
merge(mybeawhoch(x),myself(y));
merge(myeat(x),mybeawhoch(y));
}
}
int main()
{
cin>>n>>k;
for(int i=1;i<=n*3;i++)
{
fa[i]=i;
}
for(int i=1;i<=k;i++)
{
cin>>z>>x>>y;
if(x>n||y>n)
{
ans++;
continue;
}
if(z==1)
{
pdtl(x,y);
}
else
{
if(x==y)
{
ans++;
continue;
}
pdbs(x,y);
}
}
cout<<ans<<' ';
return 0;
}