#include <bits/stdc++.h>
char t[1001];
int n, p;
int palindrome(int i) {
  if ((i - 2 >= 0) && (i < n) && (t[i - 2] == t[i])) return i;
  if ((i - 1 >= 0) && (i < n) && (t[i - 1] == t[i])) return i;
  if ((i - 1 >= 0) && (i + 1 < n) && (t[i - 1] == t[i + 1])) return i + 1;
  if ((i >= 0) && (i + 1 < n) && (t[i] == t[i + 1])) return i + 1;
  if ((i >= 0) && (i + 2 < n) && (t[i] == t[i + 2])) return i + 2;
  return -1;
}
bool inc(int i) {
  while ((i != -1) && (t[i] == 'a' + p - 1)) --i;
  if (i == -1) return false;
  ++t[i];
  char letter = 'a';
  for (int j = i + 1; j < n; ++j) {
    t[j] = letter++;
    if (letter == 'd') letter = 'a';
  }
  int beg = palindrome(i);
  if (beg != -1)
    return inc(beg);
  else
    return true;
}
int main() {
  scanf("%d %d", &n, &p);
  scanf("%s", t);
  if (((p < 3) && (n > 2)) || (!inc(n - 1)))
    printf("NO\n");
  else
    printf("%s\n", t);
}
