#include <bits/stdc++.h>
using namespace std;
int n, m;
int check(string st) {
  for (int i = 1; i < st.size(); i++) {
    if (st[i] == st[i - 1]) return 1;
  }
  for (int i = 2; i < st.size(); i++) {
    if (st[i] == st[i - 2]) return 1;
  }
  return 0;
}
int ypa(string &st) {
  int i;
  for (i = st.size() - 1; i > 0; i--) {
    if (st[i] == st[i - 1]) {
      st[i] += 1;
      for (int j = i + 1; j <= st.size() - 1; j++) {
        st[j] = 'a';
      }
      for (int j = i; j > 0; j--) {
        if (st[j] - 'a' + 1 == m + 1) {
          st[j] = 'a';
          st[j - 1]++;
        }
      }
    }
  }
  for (i = st.size() - 1; i > 1; i--) {
    if (st[i] == st[i - 2]) {
      st[i] += 1;
      for (int j = i + 1; j <= st.size() - 1; j++) {
        st[j] = 'a';
      }
      for (int j = i; j > 0; j--) {
        if (st[j] - 'a' + 1 == m + 1) {
          st[j] = 'a';
          st[j - 1]++;
        }
      }
    }
  }
}
int main() {
  cin >> n >> m;
  string st;
  cin >> st;
  string stt;
  stt = st;
  st[n - 1]++;
  for (int i = n - 1; i > 0; i--) {
    if (st[i] - 'a' + 1 == m + 1) {
      st[i] = 'a';
      st[i - 1]++;
    }
  }
  if (st[0] - 'a' + 1 >= m + 1) {
    cout << "NO";
    return 0;
  }
  while (check(st)) {
    st[n - 1]++;
    for (int i = n - 1; i > 0; i--) {
      if (st[i] - 'a' + 1 == m + 1) {
        st[i] = 'a';
        st[i - 1]++;
      }
    }
    ypa(st);
    ypa(st);
    ypa(st);
    ypa(st);
    ypa(st);
    if (st[0] - 'a' + 1 >= m + 1) {
      cout << "NO";
      return 0;
    }
  }
  if (st[0] < stt[0])
    cout << "NO";
  else {
    cout << st;
  }
  return 0;
}
