#include <bits/stdc++.h>
using namespace std;
template <class T>
void debug(T a, T b) {
  ;
}
template <class T>
void chmin(T& a, const T& b) {
  if (a > b) a = b;
}
template <class T>
void chmax(T& a, const T& b) {
  if (a < b) a = b;
}
namespace std {
template <class S, class T>
ostream& operator<<(ostream& out, const pair<S, T>& a) {
  out << '(' << a.first << ',' << a.second << ')';
  return out;
}
}  // namespace std
long long int readL() {
  long long int res;
  scanf("%I64d", &res);
  return res;
}
void printL(long long int res) { printf("%I64d", res); }
char s[505];
int n;
int app[505];
int top[30];
int main() {
  scanf("%s", s);
  n = strlen(s);
  memset(top, -1, sizeof(top));
  for (int i = 0; i < (n); ++i) {
    int id = s[i] - 'a';
    if (app[id] == 0) top[id] = i;
    app[id]++;
  }
  int blank = 0;
  bool fail = false;
  for (int i = 0; i < (26); ++i) {
    if (app[i] == 0) blank = 1;
    if (blank && app[i] > 0) fail = true;
  }
  for (int i = 0; i < (25); ++i)
    if (top[i] != -1 && top[i + 1] != -1) {
      if (top[i] > top[i + 1]) fail = true;
    }
  puts(fail ? "NO" : "YES");
  return 0;
}
