#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, p;
  cin >> n >> p;
  string s;
  cin >> s;
  bool f = 0;
  int i = s.size() - 1;
  if (i > 0) {
    while (s[i] - 'a' == p - 1) {
      s[i] = 'a';
      i--;
    }
    s[i]++;
  }
  if (s.size() == 2) i = s.size() - 1;
  while (!f) {
    if (i > 1 && s[i] != s[i - 1] && s[i] != s[i - 2])
      if (i == s.size() - 1) {
        f = 1;
        break;
      } else
        i++;
    else if (i > 1 && (s[i] == s[i - 1] || s[i] == s[i - 2])) {
      if (s[i] - 'a' < p - 1)
        s[i]++;
      else {
        s[i] = 'a';
        i--;
        while (s[i] - 'a' == p - 1 && i >= 0) {
          s[i] = 'a';
          i--;
        }
        if (i < 0) {
          f = 0;
          break;
        }
        if (i != 0) s[i]++;
      }
    } else if (i == 1 && s[i] != s[i - 1])
      if (i == s.size() - 1) {
        f = 1;
        break;
      } else
        i++;
    else if (i == 1 && s[i] == s[i - 1])
      if (s[i] - 'a' < p - 1)
        s[i]++;
      else {
        s[i] = 'a';
        i--;
        if (s[i] - 'a' == p - 1) {
          f = 0;
          break;
        }
      }
    else if (i == 0) {
      if (s[i] - 'a' < p - 1) {
        s[i]++;
        i++;
      } else {
        f = 0;
        break;
      }
      if (s.size() == 1) {
        f = 1;
        break;
      }
    }
  }
  if (f != 0)
    cout << s << endl;
  else
    cout << "NO" << endl;
}
