#include <bits/stdc++.h>
using namespace std;
bool mark[1000];
int main() {
  string s;
  int n;
  cin >> n;
  cin >> s;
  for (register int i = (0); i < (int)(s.length() / 2 + s.length() % 2); i++) {
    if (s[i] != '?') {
      mark[s[i]] = 1;
      if (s[s.length() - i - 1] != '?' && s[s.length() - i - 1] != s[i]) {
        cout << "IMPOSSIBLE" << endl;
        return 0;
      }
      if (s[s.length() - i - 1] == '?') s[s.length() - i - 1] = s[i];
    } else if (s[s.length() - i - 1] != '?') {
      s[i] = s[s.length() - i - 1];
      mark[s[i]] = 1;
    }
  }
  int p = s.length() / 2;
  if (n > 1)
    for (register int i = (0); i < (int)(n); i++) {
      if (!mark[n - i - 1 + 'a']) {
        while (p >= 0 && s[p] != '?') p--;
        if (p < 0) {
          cout << "IMPOSSIBLE" << endl;
          cin >> n;
          return 0;
        }
        s[p] = n - i - 1 + 'a';
        s[s.length() - p - 1] = s[p];
        mark[s[p]] = 1;
      }
    }
  for (register int i = (0); i < (int)(s.length()); i++)
    if (s[i] == '?') s[i] = 'a';
  cout << s << endl;
}
