#include <bits/stdc++.h>
using namespace std;
int main() {
  int k;
  cin >> k;
  string s;
  cin >> s;
  bool map[30] = {0};
  int ls = s.length();
  int i = 0, j = ls - 1;
  while (i < j) {
    if (s[i] == '?' && s[j] == '?') {
      i++;
      j--;
      continue;
    } else if (s[i] == '?' && s[j] != '?') {
      s[i] = s[j];
      map[s[i] - 'a' + 1] = true;
      i++;
      j--;
    } else if (s[i] != '?' && s[j] == '?') {
      s[j] = s[i];
      map[s[i] - 'a' + 1] = true;
      i++;
      j--;
    } else if (s[i] == s[j]) {
      map[s[i] - 'a' + 1] = true;
      i++;
      j--;
    } else {
      cout << "IMPOSSIBLE";
      return 0;
    }
  }
  if (i == j && s[i] != '?') {
    map[s[i] - 'a' + 1] = true;
  }
  while (i >= 0) {
    while (k > 1 && map[k] == true) {
      k--;
    }
    if (s[i] == '?' && s[j] == '?') {
      s[i] = s[j] = 'a' + k - 1;
      map[k] = true;
      i--;
      j++;
    } else {
      i--;
      j++;
    }
  }
  if (k == 1 && map[k] == true) {
    cout << s << endl;
  } else {
    cout << "IMPOSSIBLE";
  }
}
