class BIT
    def initialize(n)
        @n = n
        @dat = Array.new(@n, 0)
    end

    def sum(i)
        s = 0
        while i >= 0 do
            s += @dat[i]
            i = (i & (i+1)) - 1
        end
        s
    end

    def sum_between(a, b)
        sum(b) - sum(a-1)
    end

    def add(i, x)
        while i < @n do
            @dat[i] += x
            i |= i+1
        end
    end

    def lower_bound(x)
        ret = -1
        k = 1
        k <<= 1 while 2*k <= @n
        while k > 0
            if ret+k < @n && @dat[ret+k] < x
                x -= @dat[ret+k]
                ret += k
            end
            k >>= 1
        end
        ret + 1
    end
end

N = gets.to_i
A = gets.split.map(&:to_i)
hash = Hash.new(0)
A.each do |a|
    hash[a] += 1
end
cmp = hash.keys.sort.reverse
sz = cmp.size
nums = sz.times.map{|i| hash[cmp[i]]}

bit = BIT.new(sz)
slimes = [0]
nums[0] -= 1
sz.times do |i|
    bit.add(i, nums[i])
end

N.times do
    slimes2 = []
    slimes.each do |a|
        i = bit.lower_bound(bit.sum(a)+1)
        if i == sz
            puts "No"
            exit
        end
        bit.add(i, -1)
        slimes2.push(i)
    end
    slimes.concat(slimes2)
end
puts "Yes"