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.
"""
    author - Sayan Bose
    date - 29.01.2020
    Brooklyn 99 is love!
"""
from collections import defaultdict
n = int(input())
li = list(map(int, input().split()))
d = defaultdict(int)
for i in li:
	d[i] += 1
l = set(li)
res = []
f = 1
while len(res) < n:
	for i in l:
		if d[i]:
			try:
				if res[-1] == i:
					f = 0
					break
				res.append(i)
				d[i] -= 1
			except IndexError:
				res.append(i)
				d[i] -= 1
		else:
			f = 0
			break
	if not f:
		break
if f:
	print('YES')
else:
	if len(res) == n:
		print('YES')
	else:
		print('NO')