#include <bits/stdc++.h>
using namespace std;
const int Maxn = 50005;
char str[Maxn];
int hs[26];
int main() {
  scanf("%s", str);
  int len = strlen(str), cCnt = 0;
  int xNum = 0, sta = 0;
  bool ok = false;
  int i;
  for (i = 0; i < len; i++) {
    if (i - sta >= 26) {
      ok = true;
      for (int j = sta; j < sta + 26; j++) {
        if (str[j] == '?') {
          for (int k = 0; k < 26; k++) {
            if (hs[k] == 0) {
              hs[k] = 1;
              str[j] = 'A' + k;
              break;
            }
          }
        }
      }
      break;
    }
    if (str[i] == '?')
      xNum++;
    else {
      if (hs[str[i] - 'A'] == 0) {
        hs[str[i] - 'A'] = 1;
        cCnt++;
      } else {
        hs[str[i] - 'A']++;
        cCnt++;
        for (int j = sta; j < i; j++) {
          if (str[j] == str[i]) {
            hs[str[j] - 'A']--;
            cCnt--;
            sta = j + 1;
            break;
          } else {
            if (str[j] == '?')
              xNum--;
            else {
              hs[str[j] - 'A']--;
              cCnt--;
            }
          }
        }
      }
    }
  }
  if (!ok && i - sta >= 26) {
    ok = true;
    for (int j = sta; j < sta + 26; j++) {
      if (str[j] == '?') {
        for (int k = 0; k < 26; k++) {
          if (hs[k] == 0) {
            hs[k] = 1;
            str[j] = 'A' + k;
            break;
          }
        }
      }
    }
  }
  if (ok) {
    for (int i = 0; i < len; i++) {
      if (str[i] == '?') str[i] = 'A';
    }
    printf("%s\n", str);
  } else {
    puts("-1");
  }
  return 0;
}
