#include <bits/stdc++.h>
using namespace std;
int n, p;
int a[1010];
int ans[1010];
bool dfs(int pos, bool gre) {
  if (pos >= n) return gre;
  if (gre) {
    for (int i = 0; i < p; i++) {
      if (pos && i == ans[pos - 1]) continue;
      if (pos >= 2 && i == ans[pos - 2]) continue;
      ans[pos] = i;
      if (dfs(pos + 1, i > a[pos] || gre)) return 1;
    }
    return 0;
  } else {
    for (int i = a[pos]; i < p; i++) {
      if (pos && i == ans[pos - 1]) continue;
      if (pos >= 2 && i == ans[pos - 2]) continue;
      ans[pos] = i;
      if (dfs(pos + 1, i > a[pos] || gre)) return 1;
    }
    return 0;
  }
}
char s[1010];
int main() {
  scanf("%d%d", &n, &p);
  scanf("%s", s);
  for (int i = 0; i < n; i++) a[i] = s[i] - 'a';
  if (dfs(0, 0)) {
    for (int i = 0; i < n; i++) printf("%c", ans[i] + 'a');
    puts("");
  } else
    puts("NO");
}
