#include <bits/stdc++.h>
using namespace std;
int n,m,p1,p2,p3,vis[100001],ans;
vector<int> arr[100001];
void dfs(int cur,int pre) {
    vis[cur]=1;
    for (int i=0; i<arr[cur].size(); i++) {
        if (arr[cur][i]==pre or vis[arr[cur][i]]) continue;
        dfs(arr[cur][i],cur);
    }
}
int main() {
    cin>>n>>m;
    for (int i=0; i<m; i++) {
        cin>>p1>>p2>>p3; p1--; p2--;
        arr[p1].push_back(p2);
        arr[p2].push_back(p1);
    }
    for (int i=0; i<n; i++) {
        if (!vis[i]) {dfs(i,-1); ans++;}
    }
    cout<<ans<<'\n';
}