n = gets.to_i
slimes = gets.split.map(&:to_i).sort.reverse
slimes_generated = []
slimes_generated << slimes.shift
tmp = []
n.times do |index|
  slimes_generated.each do |slime_generated|
    if slime_index = slimes.bsearch_index { |i| i < slime_generated }
      tmp << slimes[slime_index]
      slimes.delete_at(slime_index)
    else
      puts "No"
      exit
    end
  end
  tmp.size.times do
    slimes_generated << tmp.shift
  end
end
puts "Yes"
