#include<iostream>
using namespace std;
int f[1001],a[1001][1001];
int find(int k){
if(f[k]==0) return k;
f[k]=find(f[k]);
return f[k];
}
void Union(int x,int y){
int fx = find(x),fy = find(y);
if(fx!=fy) f[fx]=fy;
}
int n,m,s=0,x,y,p;
int main(){
cin>>n>>m;
for (int i=1;i<=m;i++){
cin>>p>>x>>y;
if (p==0) Union(x,y);
else{
a[x][y]=a[y][x]=1;
for(int j=1;j<=n;j++) {
if(a[x][j]==1) Union(y,j); }
for(int j=1;j<=n;j++) {
if(a[y][j]==1) Union(x,j); }
}
}
for(int i=1;i<=n;i++) if(f[i]==0) s++;
cout<<s;
return 0;
}