import ac_library.DSU; import java.io.BufferedInputStream; import java.io.IOException; import java.io.StreamTokenizer; public class Main { public static void main(String[] args) throws IOException { StreamTokenizer in = new StreamTokenizer(new BufferedInputStream(System.in)); in.nextToken(); int n = (int) in.nval; in.nextToken(); int m = (int) in.nval; DSU d = new DSU(n); for (int i = 0; i < m; i++) { in.nextToken(); int u = (int) in.nval; in.nextToken(); int v = (int) in.nval; d.merge(u, v); } int c = 0; for (int i = 0; i < n; i++) { if (d.leader(i) == i) c++; } System.out.println(c); } }