import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class 종교 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int cnt = 0;
int[] arr = new int[m];
int[] arr2 = new int[m];
boolean[] p = new boolean[n+1];
Queue<Integer> q = new LinkedList<Integer>();
for (int i = 0; i < m; i++) {
arr[i] = sc.nextInt();
arr2[i] = sc.nextInt();
}
if(m == 0)
{
System.out.println(n);
return;
}
for (int i = 1; i < p.length; i++) {
if(!p[i])
{
cnt++;
p[i] = true;
q.add(i);
while(!q.isEmpty())
{
int temp = q.poll();
for (int j = 0; j < m; j++) {
if(temp == arr[j] || temp == arr2[j])
{
if(!p[arr2[j]])
{
q.add(arr2[j]);
p[arr2[j]] = true;
}
if(!p[arr[j]])
{
q.add(arr[j]);
p[arr[j]] = true;
}
}
}
}
}
}
System.out.println(cnt);
}
}