#include <bits/stdc++.h>
char s[100001];
int a = 0, b = 0, c = 0;
char temp[100001];
int temp_num = 0;
int dp(int a, int b, int c) {
  if (a == 0 && b == 0 && c == 0) {
    return 0;
  }
  int a1 = 1, b1 = 1, c1 = 1;
  if (a == 0) {
    a1 = 0;
  }
  if (b == 0) {
    b1 = 0;
  }
  if (c == 0) {
    c1 = 0;
  }
  if (temp_num > 0) {
    if (temp[temp_num - 1] == 'a') {
      a1 = 0;
    }
    if (temp[temp_num - 1] == 'b') {
      b1 = 0;
    }
    if (temp[temp_num - 1] == 'c') {
      c1 = 0;
    }
  }
  if (temp_num > 1) {
    if (temp[temp_num - 2] == 'a') {
      a1 = 0;
    }
    if (temp[temp_num - 2] == 'b') {
      b1 = 0;
    }
    if (temp[temp_num - 2] == 'c') {
      c1 = 0;
    }
  }
  int ans = -1;
  temp_num++;
  if (a1 == 1) {
    if (b1 == 1) {
      if (c1 == 1) {
        temp[temp_num - 1] = 'a';
        ans = dp(a - 1, b, c);
        if (ans == -1) {
          temp[temp_num - 1] = 'b';
          ans = dp(a, b - 1, c);
        }
        if (ans == -1) {
          temp[temp_num - 1] = 'c';
          ans = dp(a, b, c - 1);
        }
      } else {
        temp[temp_num - 1] = 'a';
        ans = dp(a - 1, b, c);
        if (ans == -1) {
          temp[temp_num - 1] = 'b';
          ans = dp(a, b - 1, c);
        }
      }
    } else {
      if (c1 == 1) {
        temp[temp_num - 1] = 'a';
        ans = dp(a - 1, b, c);
        if (ans == -1) {
          temp[temp_num - 1] = 'c';
          ans = dp(a, b, c - 1);
        }
      } else {
        temp[temp_num - 1] = 'a';
        ans = dp(a - 1, b, c);
      }
    }
  } else {
    if (b1 == 1) {
      if (c1 == 1) {
        temp[temp_num - 1] = 'b';
        ans = dp(a, b - 1, c);
        if (ans == -1) {
          temp[temp_num - 1] = 'c';
          ans = dp(a, b, c - 1);
        }
      } else {
        temp[temp_num - 1] = 'b';
        ans = dp(a, b - 1, c);
      }
    } else {
      if (c1 == 1) {
        temp[temp_num - 1] = 'c';
        ans = dp(a, b, c - 1);
      } else {
        ans = -1;
      }
    }
  }
  return ans;
}
int main() {
  scanf("%s", s);
  for (int i = 0; i < 100001 && s[i] != NULL; i++) {
    if (s[i] == 'a') {
      a++;
    } else if (s[i] == 'b') {
      b++;
    } else {
      c++;
    }
  }
  if (dp(a, b, c) == 0) {
    printf("YES\n");
    return 0;
  }
  printf("NO\n");
  return 0;
}
