#include <bits/stdc++.h>
int cnt[26];
char str[50005];
int main() {
  scanf("%s", str);
  int len = strlen(str);
  if (len < 26) {
    puts("-1");
    return 0;
  }
  memset(cnt, 0, sizeof(cnt));
  int mask = 0;
  for (int i = 0; i < len; ++i) {
    if (str[i] == '?') {
      ++mask;
    } else {
      if (++cnt[str[i] - 'A'] == 1) ++mask;
    }
    if (i < 25) continue;
    if (mask == 26) {
      int letter = 0;
      for (int j = i - 26 + 1; j <= i; ++j)
        if (str[j] == '?') {
          while (cnt[letter]) ++letter;
          str[j] = 'A' + letter;
          ++letter;
        }
      for (int j = 0; j < len; ++j)
        if (str[j] == '?') str[j] = 'A';
      puts(str);
      return 0;
    }
    if (str[i - 25] == '?') {
      --mask;
    } else {
      if (--cnt[str[i - 25] - 'A'] == 0) --mask;
    }
  }
  puts("-1");
  return 0;
}
