#include <bits/stdc++.h>
using namespace std;

const int N = 1e5 + 10;
bool mark[N];
int n, ans, q;
vector<int> g[N];

void dfs(int v){
	mark[v] = 1;
	for (int u : g[v])
		if(!mark[u])
			dfs(u);
}

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	
	cin >> n >> q;
	for (int i = 0; i < q; i++){
		int v, u, w;
		cin >> v >> u >> w;
		v--;u--;
		
		g[v].push_back(u);
		g[u].push_back(v);
	}
	
	for (int i = 0; i < n; i++){
		if(!mark[i]){
			dfs(i);
			ans++;
		}
	}
	
	cout << ans;
	
}

