#include<cstdio>
#include<vector>
using namespace std;

#define ran 101101

int n, m;
vector<int> e[ran];
bool v[ran];

void dfs(int cur) {
	v[cur] = true;
	for(int i=0;i<e[cur].size();i++) {
		int nxt = e[cur][i];
		if(v[nxt]) continue;
		dfs(nxt);
	}
}

int main() {
	scanf("%d%d", &n, &m);
	for(int i=0;i<m;i++) {
		int x, y, z; scanf("%d%d%d", &x, &y, &z);
		e[x].push_back(y); e[y].push_back(x);
	}
	
	int ans=n;
	for(int i=1;i<=n;i++) {
		if (v[i]) {
			ans--;
			continue;
		}
		dfs(i);
	}
	printf("%d\n", ans);
	
	return 0;
}