#include <bits/stdc++.h>   #pragma GCC optimize(2)   #pragma GCC optimize(3,  Ofast ,  inline )   using namespace std;   const long long mod = 1e9 + 7;   const long long M = 1e8 + 5;   const long long N = 6e5 + 5;   char s[N];   bool check() {     map<char, long long> mp;     long long len = strlen(s + 1);     long long l = 1;     while (s[l] ==  a ) l++;     if (l == 1) return 0;     long long pos = l;     while (s[l] ==  b ) l++;     if (l == pos) return 0;     while (s[l] ==  c ) l++;     if (l != len + 1) return 0;     for (register long long i = 1; i <= len; i++) mp[s[i]]++;     if (mp[ c ] == mp[ a ] || mp[ c ] == mp[ b ]) return 1;     return 0;   }   inline void solve() {     scanf( %s , s + 1);     puts(check() ?  YES  :  NO );   }   signed main() {     long long T = 1;     for (long long index = 1; index <= T; index++) {       solve();     }     return 0;   }   