P16845 [GKS 2021 #C] Smaller Strings

Description

You are given an integer $K$ and a string $S$ of length $N$, consisting of lowercase letters from the first $K$ letters of the English alphabet. Find the number of palindrome strings of length $N$ which are lexicographically smaller than $S$ and consist of lowercase letters from the first $K$ letters of the English alphabet. A string composed of ordered letters $a_1, a_2, \ldots, a_n$ is lexicographically smaller than another string of the same length $b_1, b_2, \ldots, b_n$ if $a_i < b_i$, where $i$ is the first index where characters differ in the two strings. For example, the following strings are arranged in lexicographically increasing order: `aaa`, `aab`, `aba`, `cab`. A palindrome is a string that is the same written forwards and backwards. For example, `anna`, `racecar`, `aaa` and `x` are all palindromes, while `ab`, `frog` and `yoyo` are not. As the number of such strings can be very large, print the answer modulo $10^9 + 7$.

Input Format

The first line of the input gives the number of test cases, $T$. $T$ test cases follow. Each test case consists of two lines. The first line contains two integers $N$ and $K$. The second line contains a string $S$ of length $N$, consisting of lowercase letters.

Output Format

For each test case, output one line containing `Case #`$x$`: ` followed by $y$, where $x$ is the test case number (starting from $1$) and $y$ is the number of lexicographically smaller palindrome strings modulo $10^9 + 7$.

Explanation/Hint

In Sample Case #1, the palindromes are ["aa", "bb"]. In Sample Case #2, the palindromes are ["aaaaa", "aabaa", "aacaa", "aadaa", "aaeaa", "ababa", "abbba", "abcba"]. In Sample Case #3, the palindromes are ["a", "b", "c"]. ### Limits $1 \le T \le 100$. The string $S$ consists of lowercase letters from the first $K$ letters of the English alphabet. **Test Set $1$** $1 \le N \le 8$. $1 \le K \le 5$. **Test Set $2$** $1 \le N \le 10^5$. $1 \le K \le 26$.