#include <bits/stdc++.h>
using namespace std;
int dp[100005][26], dir[100005][26];
int n;
char s[100005];
int cal(int i, int curr) {
  if (curr > 25) return 0;
  if (i == n) return 999999999;
  if (dp[i][curr] != -1) return dp[i][curr];
  int ret1, ret2;
  ret1 = ret2 = 999999999;
  if (s[i] - 'a' <= curr) ret1 = cal(i + 1, curr + 1) + curr - (s[i] - 'a');
  ret2 = cal(i + 1, curr);
  if (ret1 < ret2)
    dir[i][curr] = 1;
  else
    dir[i][curr] = 2;
  return dp[i][curr] = min(ret1, ret2);
}
int main() {
  scanf("%s", s);
  n = strlen(s);
  memset(dp, -1, sizeof(dp));
  int ans = cal(0, 0);
  if (ans >= 999999999) {
    ans = -1;
    printf("%d\n", ans);
  } else {
    int j = 0;
    for (int i = 0; i < n; i++) {
      if (dir[i][j] == 1) {
        putchar('a' + j);
        j++;
      } else
        putchar(s[i]);
    }
    puts("");
  }
  return 0;
}
