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.
v=[]
n=[]
s=0
z=int(input())
x=list(map(int,input().split()))
for c in x:
    if c not in v:
        v.append(c)
        
if z>1 and len(v)==1:
     s=99999   
      
for b in v:
   n.append(x.count(b))
#print('n=',n)   
m=max(n)
n.remove(m)
#print('nnnnnnn=',n) 
 
for a in n:
   s=s+a 
#print('s=',s)
    
if s==m-1 or z//2<len(v) or s==m :
    print("YES")
else:
   print('NO')