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;

void solve()
{
	string S;
	cin >> S;
	vector<int> as(3);
	for (char c : S)
	{
		as[c-'a']++;
	}
	sort(as.begin(), as.end());
	int x = as[1]-as[0], y = as[2]-as[0];
	if ((x == y && x == 1) || (x == 0 && y == 1) || (x == y && y == 0))
	{
		cout << "YES" << endl;
	}
	else
	{
		cout << "NO" << endl;
	}
}

int main(void)
{
	solve();
	//cout << "yui(*-v・)yui" << endl;
	return 0;
}
