#include <bits/stdc++.h>
using namespace std;
long long MAX = 998244353;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  ;
  long long len;
  cin >> len;
  string s;
  cin >> s;
  long long n = s.length();
  long long x = n / 2;
  if (n % 2 != 0) x++;
  char arr[n];
  set<char> st;
  for (char i = 'a'; i < 'a' + len; i++) st.insert(i);
  for (long long i = 0; i < n; i++) {
    char c;
    c = s[i];
    if (c != '?') {
      st.erase(c);
    }
    if (i < x) {
      arr[i] = c;
      arr[n - 1 - i] = c;
    } else {
      if (c != '?')
        if (arr[i] == '?' || arr[i] == c) {
          arr[i] = c;
          arr[n - 1 - i] = c;
        } else {
          cout << "IMPOSSIBLE";
          return 0;
        }
    }
  }
  long long check = 0;
  if (st.size() == 0) {
    check = 1;
    st.insert('a');
  }
  auto it = st.crbegin();
  for (long long i = x - 1; i >= 0; i--) {
    if (arr[i] == '?') {
      check++;
      if (it != st.crend()) {
        arr[i] = *it;
        arr[n - i - 1] = *it;
        it++;
      } else {
        arr[i] = 'a';
        arr[n - i - 1] = 'a';
      }
    }
  }
  if (check >= st.size())
    for (long long i = 0; i < n; i++) cout << arr[i];
  else
    cout << "IMPOSSIBLE";
  return 0;
}
