4373: D. 鲁的串串 (string.c/cpp/pas)

内存限制:512 MB 时间限制:2.000 S
评测方式:文本比较 命题人:
提交:1 解决:1

题目描述

### 题目背景 在遥远的银河系中,宇宙大帝 Luke 正在研究一种神秘的古老语言。这个语言由 $k$ 个神秘的符文组成(即前 $k$ 个小写字母),每个符文对应一种宇宙中的基本元素。Luke 发现了一个长度为 $n$ 的古老字符序列,这个序列中所有的符文都来自这 $k$ 个基本符文。为了进一步揭示这段语言的奥秘,Luke 决定在这个字符序列的基础上,添加更多的符文来扩展它。 Luke 可以在现有的字符序列后再添加 $m$ 个符文,使得新的字符序列包含尽可能多的不同子序列。唯一的限制是,Luke 只能使用那 $k$ 个基本符文(即前 $k$ 个小写字母)来进行添加。 现在,Luke 想知道,在他添加这些符文之后,长度为 $n+m$ 的新字符序列最多可以包含多少个不同的子序列。由于答案可能非常庞大,请将结果对 $10^9 + 7$ 取模。 你的任务是帮助宇宙大帝 Luke 计算这个最大可能的子序列数量,帮助他破解古老语言的奥秘。

输入

### 输入格式 输入第一行两个数 $m$,$k$。 接下来一行一个字符串,长度为 $n$,表示原始的字符串。

输出

### 输出格式 一个数,表示答案。

样例输入 复制

1 3
ac

样例输出 复制

8

提示

### Examples #### 【样例 1 输入】 ```input 1 3 ac ``` #### 【样例 1 输出】 ```output 8 ``` #### 【样例 2,3,4 输入】 见下发文件。 #### 【样例 2,3,4 输出】 见下发文件。 ### Notes | 测试点 | $n \leq $ | $m\leq $ | $k \leq $ | | :---------: | :----------------: | :------------------: | :---------: | | $1$ | $1$ | $1$ | $1$ | | $2\sim 3$ | $5$ | $0$ | $5$ | | $4\sim 5$ | $0$ | $5$ | $5$ | | $6$ | $5$ | $5$ | $5$ | | $7\sim 8$ | $1000$ | $0$ | $26$ | | $9 \sim 10$ | $0$ | $1000$ | $26$ | | $11$ | $1000$ | $1000$ | $1$ | | $12$ | $1000$ | $1000$ | $26$ | | $13$ | $20000$ | $0$ | $26$ | | $14$ | $0$ | $20000$ | $26$ | | $15$ | $20000$ | $20000$ | $1$ | | $16$ | $20000$ | $20000$ | $26$ | | $17$ | $100000$ | $0$ | $26$ | | $18$ | $0$ | $100000$ | $26$ | | $19$ | $100000$ | $100000$ | $1$ | | $20$ | $100000$ | $100000$ | $26$ |