#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  string s;
  cin >> n >> s;
  vector<int> spareIndices;
  vector<bool> LetterPresent(n);
  for (int i = 0, j = s.length() - 1; i < (s.length() + 1) / 2; ++i, --j) {
    if (s[i] != s[j]) {
      if (s[i] == '?') {
        s[i] = s[j];
        LetterPresent[s[i] - 'a'] = true;
        continue;
      }
      if (s[j] == '?') {
        s[j] = s[i];
        LetterPresent[s[i] - 'a'] = true;
        continue;
      }
      cout << "IMPOSSIBLE";
      return 0;
    }
    if (s[i] == '?') {
      spareIndices.push_back(i);
      continue;
    }
    LetterPresent[s[i] - 'a'] = true;
  }
  vector<char> unused_letters;
  for (int i = 0; i < LetterPresent.size(); ++i) {
    if (!LetterPresent[i]) unused_letters.push_back('a' + i);
  }
  if (unused_letters.size() > spareIndices.size()) {
    cout << "IMPOSSIBLE";
    return 0;
  }
  int a = spareIndices.size() - unused_letters.size();
  int i = 0;
  for (; i < a; ++i) {
    s[spareIndices[i]] = s[s.size() - 1 - spareIndices[i]] = 'a';
  }
  for (; i < spareIndices.size(); ++i) {
    s[spareIndices[i]] = s[s.size() - 1 - spareIndices[i]] =
        unused_letters[i - a];
  }
  cout << s;
}
