B. Дополни слово
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Кодер ZS любит читать словарь. Он считает, что слово хорошее, если найдется его подстрока (непрерывный отрезок букв) длины 26 такая, что она содержит каждую букву латинского алфавита ровно по одному разу. В частности, если длина строки строго меньше 26, такой подстроки не существует и строка не является хорошей.

Теперь Кодер ZS сообщил вам слово, в котором некоторые буквы пропущены, так как он забыл их. Он хочет определить, возможно ли вставить пропущенные буквы так, что слово станет хорошим. Если это возможно, ему нужно найти пример такого слова. Поможете ему?

Входные данные

Первая и единственная строка входных данных содержит единственную строку s (1 ≤ |s| ≤ 50 000) — слово, которое помнит Кодер ZS. Каждый символ строки является заглавной буквой латинского алфавита ('A'-'Z') или же является знаком вопроса ('?'), где знаки вопроса означают буквы, которые Кодер ZS вспомнить не может.

Выходные данные

Если способа заменить все знаки вопроса заглавными буквами так, что слово станет хорошим, не существует, выведите  - 1 в единственной строке.

В противном случае, выведите строку, соответствующую хорошему слову, которое Кодер ZS мог запомнить. Эта строка должна соответствовать строке из входных данных, за исключением знаков вопроса, замененных заглавными буквами латинского алфавита.

Если существует несколько решений, выведите любое из них.

Примеры
Входные данные
ABC??FGHIJK???OPQR?TUVWXY?
Выходные данные
ABCDEFGHIJKLMNOPQRZTUVWXYS
Входные данные
WELCOMETOCODEFORCESROUNDTHREEHUNDREDANDSEVENTYTWO
Выходные данные
-1
Входные данные
??????????????????????????
Выходные данные
MNBVCXZLKJHGFDSAQPWOEIRUYT
Входные данные
AABCDEFGHIJKLMNOPQRSTUVW??M
Выходные данные
-1
Примечание

В первом примере из условия, ABCDEFGHIJKLMNOPQRZTUVWXYS является правильным ответом, потому что она содержит подстроку длины 26 (в данном случае это вся строка), содержащую все буквы латинского алфавита ровно по одному разу. Заметьте, что существует несколько решений, например ABCDEFGHIJKLMNOPQRSTUVWXYZ или ABCEDFGHIJKLMNOPQRZTUVWXYS.

Во втором примере из условия пропущенных букв нет. Также данная строка не содержит подстроки длины 26, включающую в себя все буквы алфавита, так что ответ равен  - 1.

В третьем примере из условия любая строка длины 26, содержащая все буквы латинского алфавита, подходит в качестве ответа.