n, m = gets.split(' ').map{|s| s.to_i}
r = []
m.times{
  r << gets.split(' ').map{|s| s.to_i}
}

n.times{|i|
  r << [i + 1, i + 1]
}

r.each{|st|
  k0 = st[0]
  k1 = st[1]
  r.each{|st2|
    st2[0] = k0 if st2[0] == k1
    st2[1] = k0 if st2[1] == k1
  }
}
puts (r.uniq.size - 1)