#include <bits/stdc++.h>
using namespace std;
long long int M = 1e9 + 7;
const double INF = 1e10;
int main() {
  long long int n, p, i;
  string st;
  cin >> n >> p >> st;
  p += 'a' - 1;
  for (i = n - 1; i > 1; --i) {
    int curr = st[i];
    if (curr == p) continue;
    int next = curr + 1;
    if ((st[i - 1] != next) and (st[i - 2] != next)) {
      st[i] = next;
      break;
    }
    if (next == p) continue;
    int snext = next + 1;
    if ((st[i - 1] != snext) and (st[i - 2] != snext)) {
      st[i] = snext;
      break;
    }
    if (snext == p) continue;
    int tnext = snext + 1;
    st[i] = tnext;
    break;
  }
  if (i == 1) {
    int curr = st[i], next = st[i] + 1;
    if ((curr < p) and (st[i - 1] != next)) {
      st[i] = next;
    } else if (next < p) {
      st[i] = ++next;
    } else
      --i;
  }
  if (i == 0) {
    int curr = st[i], next = st[i] + 1;
    if (curr < p) {
      st[i] = next;
    } else
      --i;
  }
  if ((i < 0)) {
    cout << "NO\n";
  } else {
    for (int j = i + 1; j < n; ++j) {
      if (j - 2 >= 0) {
        if (st[j - 1] != 'a' and st[j - 2] != 'a')
          st[j] = 'a';
        else if (st[j - 1] != 'b' and st[j - 2] != 'b')
          st[j] = 'b';
        else
          st[j] = 'c';
      } else if (j - 1 >= 0) {
        if (st[j - 1] != 'a')
          st[j] = 'a';
        else if (st[j - 1] != 'b')
          st[j] = 'b';
        else
          st[j] = 'c';
      }
    }
    cout << st << endl;
  }
  return 0;
}
