#include <bits/stdc++.h>
using namespace std;
int arr[1010], p, flag = 0;
void nextperm(int j) {
  if (flag == 1) return;
  int i, check = 0;
  for (i = (arr[j] + 1); i < p; ++i) {
    check = 1;
    if (j > 1) {
      if (i == arr[j - 2]) check = 0;
    }
    if (j > 0) {
      if (i == arr[j - 1]) check = 0;
    }
    if (check == 1) break;
  }
  if (check == 1) {
    arr[j] = i;
    return;
  }
  arr[j] = -1;
  if (j == 0) {
    flag = 1;
    return;
  }
  nextperm(j - 1);
  nextperm(j);
}
int main() {
  int t, i, j, a, b, c, n, m, k;
  scanf("%d %d", &n, &p);
  string s;
  cin >> s;
  for (i = 0; i < n; ++i) {
    arr[i] = s[i] - 'a';
  }
  nextperm(n - 1);
  if (flag == 1) {
    printf("NO");
  } else {
    for (i = 0; i < n; ++i) printf("%c", arr[i] + 'a');
  }
  return 0;
}
