open System open AtCoder [] let main _ = let tokens = Console.In.ReadToEnd().Split([| ' '; '\n'; '\r'; '\t' |], StringSplitOptions.RemoveEmptyEntries) let n = int tokens.[0] let m = int tokens.[1] let d = Dsu(n) for i in 0 .. m - 1 do d.Merge(int tokens.[2 + 2 * i], int tokens.[3 + 2 * i]) |> ignore let mutable c = 0 for i in 0 .. n - 1 do if d.Leader(i) = i then c <- c + 1 printfn "%d" c 0