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: SaykaT
# Problem: 296A
# Time Created: July 17(Friday) 2020 || 12:00:24

from collections import Counter

#>-------------------------<#

# Helper Functions. -> Don't cluster your code.
def check_distinct(ls):
    if len(ls) == 1:
        return 'YES'
    else:
        if len(ls) == 2 and (ls[0] != ls[1]):
            return 'YES'
        elif len(ls) == 2 and (ls[0] == ls[1]):
            return 'NO'
        else:
            ans = 'YES'
            for i in range(1, len(ls) - 1):
                if ls[i] == ls[i-1] or ls[i] == ls[i+1]:
                    ans = 'NO'
                    break
            return ans


# IO Functions. -> Input output
def io():
    n = int(input())
    ls = list(map(int, input().split()))
    return [n, ls]

# Main functions. -> Write the main solution here
def solve():
    n, ls = io()
    counted = Counter(ls)
    ans = []
    while len(ans) != n:
        for key in counted:
            if counted[key] != 0:
                ans.append(key)
                counted[key] = counted[key] - 1
    print(check_distinct(ans))

# Multiple test cases. -> When you have T test cases.
solve()
    
