#include <bits/stdc++.h>
using namespace std;
bool b[26];
int main() {
  int n, cnd = 0, cndd = 0;
  cin >> n;
  string s, tmp;
  cin >> s;
  int l = s.size();
  int i, j;
  for (i = 0, j = s.length() - 1; i <= j; i++, j--) {
    if (s[i] != '?' && s[j] != '?' && s[i] != s[j])
      break;
    else if (s[i] == '?' && s[j] != '?')
      s[i] = s[j];
    else if (s[i] != '?' && s[j] == '?')
      s[j] = s[i];
    else if (s[i] == '?' && s[j] == '?')
      cnd++;
  }
  if (i <= j) {
    cout << "IMPOSSIBLE\n";
    return 0;
  }
  for (int i = 0; i < l; i++) {
    if (s[i] != '?') {
      b[s[i] - 'a'] = true;
    }
  }
  for (int i = 0; i < n; i++) {
    if (b[i] == false) {
      cndd++;
    }
  }
  if (cndd > cnd) {
    cout << "IMPOSSIBLE";
    return 0;
  } else {
    int tmpp = cnd - cndd;
    for (int i = 0; i < tmpp; i++) {
      tmp += 'a';
    }
    for (int i = 0; i < n; i++) {
      if (!b[i]) tmp += char('a' + i);
    }
  }
  int pnt = 0;
  for (i = 0, j = l - 1; i <= j; i++, j--) {
    if (s[i] == '?') {
      s[i] = s[j] = tmp[pnt++];
    }
  }
  cout << s << endl;
  return 0;
}
