#include <bits/stdc++.h>
using namespace std;
int k, n;
bool arr[128];
char x[110];
stack<char> st;
int main() {
  scanf("%d", &k);
  scanf(" %s", &x);
  n = strlen(x);
  for (int i = 0; i < n; ++i) arr[x[i]] = 1;
  for (int i = 'a'; i < 'a' + k; ++i)
    if (!arr[i]) st.push(i);
  for (int i = 0; i < n; ++i) {
    if (x[i] != x[n - 1 - i] && x[i] != '?' && x[n - 1 - i] != '?')
      return puts("IMPOSSIBLE");
    else if (x[i] == '?')
      x[i] = x[n - 1 - i];
    else
      x[n - 1 - i] = x[i];
  }
  for (int i = (n - 1) / 2; i >= 0; --i) {
    if (x[i] == '?') {
      if (st.size())
        x[i] = x[n - 1 - i] = st.top(), st.pop();
      else
        x[i] = x[n - 1 - i] = 'a';
    }
  }
  if (st.size())
    puts("IMPOSSIBLE");
  else
    cout << x;
}
