Yaroslav has an array that consists of *n* integers. In one second Yaroslav can swap two neighboring array elements. Now Yaroslav is wondering if he can obtain an array where any two neighboring elements would be distinct in a finite time.

Help Yaroslav.
The first line contains integer *n* (1 ≤ *n* ≤ 100) — the number of elements in the array. The second line contains *n* integers *a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*n*</sub> (1 ≤ *a*<sub class="lower-index">*i*</sub> ≤ 1000) — the array elements.
a=int(input())



t=list(map(int,input().split()))


if a==1:
    print('YES')
elif a>1 and len(set(t))==1:
    print('NO')
else:

    s=list(set(t))

    p=[]
    h=0


    for k in s:
        p.append(t.count(k))

    p.sort()


    for i in range(1,len(p)):
        if p[i]-p[i-1]<=1:
            pass
        else:
            print('NO')
            h+=1
            break

    if h==0:
        print('YES')
        
