#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long int i, j, k, l, n, d, x;
  cin >> x;
  char ar[1001];
  cin >> ar;
  n = strlen(ar);
  long long int fl[26] = {0}, c = 0, v;
  for (i = 0; i < n; i++) {
    if (ar[i] == '?')
      c++;
    else
      fl[ar[i] - 'a']++;
  }
  l = (n / 2);
  v = x - 1;
  if (n % 2 == 0) l--;
  for (i = l; i >= 0; i--) {
    if (ar[i] == '?') {
      if (ar[n - 1 - i] == '?') {
        while (fl[v] != 0 && v > 0) {
          v--;
        }
        ar[i] = 'a' + v;
        ar[n - 1 - i] = 'a' + v;
        fl[v]++;
      } else {
        ar[i] = ar[n - 1 - i];
      }
    } else if (ar[n - 1 - i] == '?') {
      ar[n - 1 - i] = ar[i];
    }
  }
  memset(fl, 0, sizeof(fl));
  long long int ff = 1;
  for (i = 0; i < n; i++) {
    fl[ar[i] - 'a']++;
    if (ar[i] != ar[n - 1 - i]) {
      ff = 0;
      break;
    }
  }
  if (ff == 0) {
    cout << "IMPOSSIBLE";
    return 0;
  }
  for (i = 0; i < x; i++) {
    if (fl[i] == 0) {
      ff = 0;
      break;
    }
  }
  if (ff == 0) {
    cout << "IMPOSSIBLE";
    return 0;
  } else
    cout << ar;
  return 0;
}
