using System; using AtCoder; class Program { static void Main() { var tokens = Console.In.ReadToEnd() .Split((char[])null, StringSplitOptions.RemoveEmptyEntries); int p = 0; int n = int.Parse(tokens[p++]); int m = int.Parse(tokens[p++]); var d = new Dsu(n); for (int i = 0; i < m; i++) { int u = int.Parse(tokens[p++]); int v = int.Parse(tokens[p++]); d.Merge(u, v); } int c = 0; for (int i = 0; i < n; i++) { if (d.Leader(i) == i) c++; } Console.WriteLine(c); } }