#include <bits/stdc++.h>
using namespace std;
char s[100000];
int m[256];
int main() {
  int t, z = 0, l, i, len;
  int n, q;
  bool f, c;
  scanf("%s", s);
  len = strlen(s);
  if (len < 26) {
    printf("%d", -1);
    return 0;
  }
  f = 0;
  l = 0;
  int ltr;
  while (len - l >= 26) {
    memset(m, 0, sizeof(m));
    c = 1;
    q = n = ltr = 0;
    for (i = l; i < l + 26; i++) {
      if (s[i] == '?')
        q++;
      else {
        if (m[s[i]] == 1) {
          c = 0;
          break;
        } else {
          m[s[i]] = 1;
          ltr++;
        }
      }
    }
    if (!c) {
      l++;
      continue;
    }
    if (!q && ltr == 26) {
      for (i = 0; i < len; i++) {
        if (s[i] == '?') s[i] = 'X';
      }
      f = 1;
      c = 1;
      break;
    }
    if (26 - ltr == q) {
      for (i = l; i < l + 26; i++) {
        if (s[i] == '?') {
          for (z = 'A'; z < 'Z' + 1; z++) {
            if (!m[z]) {
              s[i] = (char)z;
              m[z] = 1;
              break;
            }
          }
        }
      }
      f = 1;
      c = 1;
    }
    if (f) break;
    l++;
  }
  if (f) {
    for (i = 0; i < len; i++) {
      if (s[i] == '?') s[i] = 'X';
    }
  }
  if (!c || !f)
    printf("%d", -1);
  else
    printf("%s", s);
  return 0;
}
