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())
tab = list(map(int,input().split()))
freq = dict()
for e in tab:
    if e in freq:
        freq[e] += 1
    else:
        freq[e] = 1
        
max_freq = -1
for val,pop in freq.items():
    max_freq = max(pop,max_freq)

others = n - max_freq
#print(max_freq,others)
if len(freq.keys()) == 1 and n == 1:
    print('YES')
elif len(freq.keys()) == 1:
    print('NO')
else:
    print('YES' if max_freq >=  others else 'NO')
