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.
def yaroslav():
    n=int(input())
    a=list(map(int,input().split()))
    cunts=[0 for i in range(1001)]
    for i in range(n):
        cunts[a[i]]=a.count(a[i])
    maxcount=0
    for i in range(1001):
        if cunts[i]>cunts[maxcount]:
            maxcount=i
    if n%2==0:
        if a.count(maxcount)>(n//2):
            print("NO")
            return
    else:
        if a.count(maxcount)>((n//2) + 1):
            print("NO")
            return
    print("YES")

yaroslav()


