#include <bits/stdc++.h>
using namespace std;
char ans[444444], a[444444];
long long h1[444444], h2[444444], p[444444];
int d1, d2, n;
bool check(int i, int e) {
  if (i > n) return e;
  int s = e ? 'a' : a[i];
  for (char x = s; x <= 'z'; ++x) {
    h1[i] = h1[i - 1] * 241 + x;
    h2[i] = h2[i - 1] + p[i] * x;
    h1[i] %= 1000000007;
    h2[i] %= 1000000007;
    if (i >= d1) {
      long long t = (h1[i] - h1[i - d1] * p[d1]) % 1000000007 * p[i + 1 - d1] %
                    1000000007;
      long long q = h2[i] - h2[i - d1];
      if ((t - q) % 1000000007 == 0) continue;
    }
    if (i >= d1) {
      long long t = (h1[i] - h1[i - d2] * p[d2]) % 1000000007 * p[i + 1 - d2] %
                    1000000007;
      long long q = h2[i] - h2[i - d2];
      if ((t - q) % 1000000007 == 0) continue;
    }
    ans[i] = x;
    if (check(i + 1, e || (x > a[i]))) return 1;
  }
  return 0;
}
int main() {
  scanf("%d", &d1);
  d2 = d1 + 1;
  scanf("%s", a + 1);
  n = strlen(a + 1);
  p[0] = 1;
  ans[n + 1] = '\0';
  for (int i = 1; i <= n; ++i) p[i] = p[i - 1] * 241 % 1000000007;
  if (check(1, 0))
    printf("%s\n", ans + 1);
  else
    puts("Impossible");
}
