#include <bits/stdc++.h>
using namespace std;
int main() {
  bool m[26] = {false};
  int n, t = 0;
  char s[101];
  int s2[101] = {0};
  scanf("%d", &n);
  scanf("%s", &s);
  for (int i = 0; i < strlen(s); i++) {
    if (s[i] != '?') {
      if ((s[strlen(s) - i - 1] != s[i] && s[strlen(s) - i - 1] != '?')) {
        printf("IMPOSSIBLE\n");
        return 0;
      }
      m[s[i] - 'a'] = true;
    }
  }
  for (int i = 0; i < strlen(s); i++)
    if (s[i] == '?') {
      if (s[strlen(s) - i - 1] != '?')
        s[i] = s[strlen(s) - i - 1];
      else {
        s2[t++] = i;
        int j;
        for (j = 0; j < n; j++)
          if (!m[j]) {
            break;
          }
        j %= n;
        s[i] = 'a' + j;
        s[strlen(s) - i - 1] = 'a' + j;
        m[j] = true;
        for (int k = 0; k < t; k++) {
          if (s[s2[k]] > s[i]) {
            char aux = s[s2[k]];
            s[s2[k]] = s[i];
            s[strlen(s) - s2[k] - 1] = s[i];
            s[i] = aux;
            s[strlen(s) - i - 1] = aux;
          }
        }
      }
    }
  for (int j = 0; j < n; j++)
    if (!m[j]) {
      printf("IMPOSSIBLE\n");
      return 0;
    }
  printf("%s\n", s);
  return 0;
}
