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.
# cook your dish here
from sys import stdin, stdout
import math
from itertools import permutations, combinations
from collections import defaultdict
from bisect import bisect_left
from bisect import bisect_right
 
def L():
    return list(map(int, stdin.readline().split()))
 
def In():
    return map(int, stdin.readline().split())
 
def I():
    return int(stdin.readline())

P = 1000000007
n = I()
arr = L()
if n == 1:
    print('YES')
else:
    st = list(set(arr))
    if len(st) == 1:
        print('NO')
    else:
        lis = []
        for i in st:
            lis.append(arr.count(i))
        mx = 0
        c = 0
        for i in lis:
            if i > mx:
                c += mx
                mx = i
            else:
                c += i
        if c >= (mx-1):
            print('YES')
        else:
            print('NO')