#include <bits/stdc++.h>
using namespace std;
const int MaxN = 1e5;
int c, m, n, a[MaxN + 5], vis[MaxN + 5];
char s[MaxN + 5];
int main() {
  scanf("%s", s + 1), n = strlen(s + 1);
  for (int i = 1; i <= n; i++) {
    if (s[i] != '?')
      a[i] = s[i] - 'A' + 1;
    else
      a[i] = 27;
  }
  int l = 1, r = 1, sum = 1, flag = 0;
  vis[a[1]]++;
  while (l <= r && r < n) {
    r++;
    if (s[r] != '?') {
      if (vis[a[r]] == 0) sum++;
      vis[a[r]]++;
    } else
      sum++, vis[a[r]]++;
    while (r - l + 1 > 26) {
      l++;
      vis[a[l - 1]]--;
      if (vis[a[l - 1]] == 0 && a[l - 1] != 27) sum--;
      if (a[l - 1] == 27) sum--;
    }
    if (r - l + 1 == 26) {
      if (sum == 26) {
        flag = 1;
        break;
      }
    }
  }
  if (flag == 1) {
    memset(vis, 0, sizeof(vis));
    for (int i = l; i <= r; i++)
      if (s[i] != '?') vis[a[i]] = 1;
    for (int i = 1; i <= l - 1; i++) {
      if (s[i] != '?')
        printf("%c", s[i]);
      else
        printf("A");
    }
    for (int i = l; i <= r; i++) {
      if (s[i] == '?') {
        for (int i = 1; i <= 26; i++) {
          if (vis[i] == 0) {
            vis[i] = 1;
            printf("%c", 'A' + i - 1);
            break;
          }
        }
      } else
        printf("%c", s[i]);
    }
    for (int i = r + 1; i <= n; i++) {
      if (s[i] != '?')
        printf("%c", s[i]);
      else
        printf("A");
    }
    printf("\n");
  } else
    printf("-1\n");
}
