N = gets.to_i edges = (0..N).map{[]} $<.each{|s| u, v = s.split.map &:to_i edges[u] << v edges[v] << u } while edges.any?{|e| e.size == 1 } (0..N).each{|u| if edges[u].size == 1 v = edges[u][0] edges[v].each{|vv| edges[vv].delete v } end } end p edges.count{|e| e.size == 0} - 1