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.
n = int(input())

lst = list(map(int, input().split()))
item_appear = {}

for i in lst: 
    if i not in item_appear: item_appear[i] = 1
    else: item_appear[i] += 1

max_appear = max(item_appear.values())

if n - max_appear >= max_appear - 1: print("YES")
else: print("NO")

# flag = True
#284 284 285 285 285 284 285 284 284 285 284 285 284 284 285 284 285 285 285 285 284 284 285 285 284 284 284 285 284 285 284 285 285 284 284 284 285 284 284 285 285 285 284 284 285 284 285 285 284 285 285 284 285 284 284 284 285 285 284 285 284 285 285 285 285 284 284 285 285 284 285
# for j in item_appear:
#     if item_appear[j] == max_appear:
#         if item_appear[j] 