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 <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <algorithm>

#define MAX_N (100000)

using namespace std;

int main(int argc, char *argv[]) {
  // read inputs
  char S[MAX_N + 1];
  scanf("%s", S);
  const int N = strlen(S);

  // solve
  int cnts[3] = {};
  for (int i = 0; i < N; i++) {
    cnts[S[i] - 'a']++;
  }
  if (abs(cnts[0] - cnts[1]) <= 1 && abs(cnts[1] - cnts[2]) <= 1 &&
      abs(cnts[2] - cnts[0]) <= 1) {
    printf("YES\n");
  } else {
    printf("NO\n");
  }

  return 0;
}
