CF464A No to Palindromes!

Description

Paul hates palindromes. He assumes that string $ s $ is tolerable if each its character is one of the first $ p $ letters of the English alphabet and $ s $ doesn't contain any palindrome contiguous substring of length 2 or more. Paul has found a tolerable string $ s $ of length $ n $ . Help him find the lexicographically next tolerable string of the same length or else state that such string does not exist.

Input Format

The first line contains two space-separated integers: $ n $ and $ p $ ( $ 1

Output Format

If the lexicographically next tolerable string of the same length exists, print it. Otherwise, print "NO" (without the quotes).

Explanation/Hint

String $ s $ is lexicographically larger (or simply larger) than string $ t $ with the same length, if there is number $ i $ , such that $ s_{1}=t_{1} $ , ..., $ s_{i}=t_{i} $ , $ s_{i+1}>t_{i+1} $ . The lexicographically next tolerable string is the lexicographically minimum tolerable string which is larger than the given one. A palindrome is a string that reads the same forward or reversed.