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.
from math import ceil
from collections import defaultdict

N = int(input())
X = list(map(int, input().split()))
MyDict = defaultdict(int)
for i in X:
    MyDict[i] += 1
for j in MyDict.values():
    if j > ceil(N/2):
        print("NO")
        exit()
print("YES")


# UB_CodeForces
# Advice: Each failure is a new starting for a success
# Location: Based on popular demand "" "" "" ""
# Caption: After TOEFL exam and start from the beginning
# CodeNumber: 580
