There are N cats. We number them from 1 through N.

Each of the cats wears a hat. Cat i says: "there are exactly a_i different colors among the N - 1 hats worn by the cats except me."

Determine whether there exists a sequence of colors of the hats that is consistent with the remarks of the cats.

Constraints

* 2 ≤ N ≤ 10^5
* 1 ≤ a_i ≤ N-1

Input

Input is given from Standard Input in the following format:


N
a_1 a_2 ... a_N


Output

Print `Yes` if there exists a sequence of colors of the hats that is consistent with the remarks of the cats; print `No` otherwise.

Examples

Input

3
1 2 2


Output

Yes


Input

3
1 1 2


Output

No


Input

5
4 3 4 3 4


Output

No


Input

3
2 2 2


Output

Yes


Input

4
2 2 2 2


Output

Yes


Input

5
3 3 3 3 3


Output

No
n = int(input())
a = list(map(int, input().split()))

# それぞれの猫の発言からありえる色の種類を計算
b = [0 for i in range(n+1)]
for i in range(n):
    b[a[i]]+=1
    b[a[i]+1]+=1

for i in range(1,n+1):
    # n匹の猫がありえると言った、b[i]==nとなるi色だけ可能性がある
    if b[i]==n:
        # a[j]==i-1であれば、自分は固有の色
        unique = 0
        for j in range(n):
            if a[j]==i-1:
                unique+=1
        # 固有じゃない猫の数
        common = n-unique
        # 固有じゃないのが1匹はありえない
        if common==1:
            break
        # 全部固有の時
        elif common==0:
            if unique==i:
                print('Yes')
                exit()
        # 固有じゃないのが2匹以上いる時
        elif unique+1<=i<=common//2+unique:
            print('Yes')
            exit()
print('No')