#include<cstdio>
#define lie() {ans++;continue;}
using namespace std;
int ds[160000];
int find(int a)
{
if(ds[a]==a)return a;
return ds[a]=find(ds[a]);
}
inline void unite(int a,int b)
{
ds[find(a)]=find(b);
}
inline bool same(int a,int b)
{
return find(a)==find(b);
}
int main()
{
int n,k;
scanf("%d %d",&n,&k);
for(int i=0;i<n*3;i++)
ds[i]=i;
int ans=0;
for(int i=0;i<k;i++)
{
int type,a,b;
scanf("%d %d %d",&type,&a,&b);
a--; b--;
if(a<0 || a>=n || b<0 || b>=n)
lie();
if(type==1)
{
if(same(a,b+n) || same(a,b+n*2))
lie();
unite(a,b);
unite(a+n,b+n);
unite(a+n*2,b+n*2);
}
else
{
if(same(a,b) || same(a,b+n*2))
lie();
unite(a,b+n);
unite(a+n,b+n*2);
unite(a+n*2,b);
}
}
printf("%d",ans);
}