C. Название
ограничение по времени на тест
2 seconds
ограничение по памяти на тест
256 megabytes
ввод
стандартный ввод
вывод
стандартный вывод

Недавно Вася закончил писать книгу. Теперь перед ним стоит проблема выбора названия. Вася хочет, чтобы название было непонятным и загадочным, чтобы его книга выделялась на фоне других. Поэтому название должно представлять собой одно слово, в котором содержится хотя бы один раз каждая из k первых букв латинского алфавита, и не содержатся никакие другие. Так же название должно быть палиндромом, то есть читаться одинаково как слева направо, так и справа налево.

Вася уже составил примерный вариант названия. Вам задан шаблон названия s, состоящий из маленьких латинских букв и знаков вопроса. Ваша задача — заменить в шаблоне все знаки вопроса на маленькие латинские буквы так, чтобы получившееся название соответствовало описанным выше требованиям. Каждый вопрос нужно заменить ровно одной буквой, удалять и добавлять новые символы в шаблон не разрешается. Если подходящих названий несколько, выберите первое в алфавитном порядке, чтобы Васина книга встречалась как можно раньше во всех каталогах.

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

В первой строке записано целое число k (1 ≤ k ≤ 26) — количество допустимых букв алфавита. Во второй строке записано s — заданный шаблон. В s могут встречаться только первые k маленьких букв латинского алфавита и знаки вопроса, длина s — от 1 до 100 символов включительно.

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

Если решения не существует, выведите IMPOSSIBLE. Иначе в единственной строке должно содержаться искомое название, соответствующее заданному шаблону. Это название должно быть палиндромом, и в нем могут встречаться только первые k букв латинского алфавита, причем каждая из этих k букв должна встречаться хотя бы один раз. Если подходящих названий несколько, выведите лексикографически наименьшее.

Лексикографическое сравнение реализует оператор < в современных языках программирования. Строка a лексикографически меньше строки b, если существует такое i (1 ≤ i ≤ |s|), что ai < bi, а для любого j (1 ≤ j < i) aj = bj. |s| обозначает длину заданного шаблона.

Примеры
Входные данные
3
a?c
Выходные данные
IMPOSSIBLE
Входные данные
2
a??a
Выходные данные
abba
Входные данные
2
?b?a
Выходные данные
abba