Snuke has a string S consisting of three kinds of letters: `a`, `b` and `c`.

He has a phobia for palindromes, and wants to permute the characters in S so that S will not contain a palindrome of length 2 or more as a substring. Determine whether this is possible.

Constraints

* 1 \leq |S| \leq 10^5
* S consists of `a`, `b` and `c`.

Input

Input is given from Standard Input in the following format:


S


Output

If the objective is achievable, print `YES`; if it is unachievable, print `NO`.

Examples

Input

abac


Output

YES


Input

aba


Output

NO


Input

babacccabab


Output

YES
#include<bits/stdc++.h>
using namespace std;
char s[111111];int a[3];
bool chk(int x,int y,int A,int B,int C){
	if(A==0 && B==0 && C==0)return true;
	if(x == 0){
		if(A==0)return false;
		A--;
	}else
	if(x == 1){
		if(B==0)return false;
		B--;
	}else
	if(x == 2){
		if(C==0)return false;
		C--;
	}
	return chk(y,3-x-y,A,B,C);
}
int main(){
	scanf("%s",s);
	for(int i=0; s[i]; i++)
		a[s[i]-'a']++;
	for(int i=0; i<3; i++)for(int j=0; j<3; j++)if(j!=i && chk(i,j,a[0],a[1],a[2])){
		puts("YES");
		return 0;
	}
	puts("NO");
	return 0;
}
