非回文的条件是:
s[i]!=s[i-1]
s[i]!=s[i-2]
#include<bits/stdc++.h>
using namespace std;
char s[1010];
int main()
{
int n,p,i,j;
while(cin>>n>>p)
{
scanf("%s",&s);
for(i=n-1;i>=0;i--)
{
for(j=s[i]+1;j<p+'a';j++)
{
if(i>=2&&j==s[i-2])
continue;
if(i>=1&&j==s[i-1])
continue;
s[i]=j;
break;
}
if(j<p+'a')
break;
}
if(i<0)
{
printf("NO\n");
continue;
}
for(i=i+1;i<n;i++)
{
for(j='a';j<'a'+p;j++)
{
if(i>=2&&j==s[i-2])
continue;
if(i>=1&&j==s[i-1])
continue;
s[i]=j;
break;
}
}
printf("%s\n",s);
}
}