#include<iostream>
using namespace std;
int father[5005];
int M,N,i,x,y,p,r1,r2,count;
int find(int x){ if(father[x]==x) return x;
return father[x]=find(father[x]);
}
void unite(int x,int y){ int rx=find(x);
int ry=find(y);
if(rx!=ry) father[ry]=rx;
}
int main(){
cin>>N>>M;
for(i=1;i<=N*2;++i)father[i]=i; for(i=0;i<M;++i){
scanf("%d%d%d",&p,&x,&y); if(p==0) unite(x,y);
else{
unite(x,y+N); unite(y,x+N);
}
}
for(i=1;i<=N;++i)if(father[i]==i)count++;
cout<<count<<endl;
return 0;
}