#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 && cCnt + xNum == 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 && cCnt + xNum == 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;   }   