#include <bits/stdc++.h>
using namespace std;
char s[1000 + 10];
int n, c2[1000 + 10], a[1000 + 10], i2, j2, p, ans[1000 + 10], tg, dem;
bool kt, f2[1000 + 10];
void dequy(int i) {
  if (kt) return;
  if (i > n) {
    dem++;
    if (dem == 2) {
      kt = true;
      for (int j = (1), _b = (n); j <= _b; j++) ans[j] = c2[j];
    }
    return;
  }
  if (kt) return;
  if (c2[i - 1] > a[i - 1] || f2[i - 1])
    f2[i] = true;
  else
    f2[i] = false;
  if (f2[i])
    for (int j = (1), _b = (p); j <= _b; j++) {
      if (kt) return;
      if (j != c2[i - 1] && j != c2[i - 2]) {
        c2[i] = j;
        dequy(i + 1);
      }
    }
  else
    for (int j = (a[i]), _b = (p); j <= _b; j++) {
      if (kt) return;
      if (j != c2[i - 1] && j != c2[i - 2]) {
        c2[i] = j;
        dequy(i + 1);
      }
    }
}
int main() {
  cin >> n >> p;
  for (int i = (1), _b = (n); i <= _b; i++) {
    cin >> s[i];
    a[i] = s[i] - 'a' + 1;
  }
  memset(f2, false, sizeof(f2));
  dem = 0;
  kt = false;
  dequy(1);
  if (!kt)
    cout << "NO";
  else
    for (int i = (1), _b = (n); i <= _b; i++) cout << (char)(ans[i] + 96);
}
