#P12028. [USACO25OPEN] Moo Decomposition G

[USACO25OPEN] Moo Decomposition G

Description

You have a long string SS of Ms and Os and an integer K1K \geq 1. Count the number of ways of ways to decompose SS into subsequences such that each subsequence is MOOOO....O with exactly KK Os, modulo 109+710^9+7.

Since the string is very long, you are not given it explicitly. Instead, you are given an integer LL (1L10181 \leq L \leq 10^{18}), and a string TT of length NN (1N1061 \leq N \leq 10^6). The string SS is the concatenation of LL copies of the string TT.

Input Format

The first line contains KK, NN, and LL.

The second line contains the string TT of length NN. Every character is either an M or an O.

It is guaranteed that the number of decompositions of SS is nonzero.

Output Format

Output the number of decompositions of string SS, modulo 109+710^9+7.

2 6 1
MOOMOO
1
2 6 1
MMOOOO
6
1 4 2
MMOO
4
1 4 100
MMOO
976371285

Hint

For Sample 1:

The only way to decompose SS into MOOs is to let the first three characters form a MOO and the last three characters form another MOO.

For Sample 2:

There are six distinct ways to decompose the string into subsequences (uppercase letters form one MOO, lowercase letters form another):

  • MmOOoo
  • MmOoOo
  • MmOooO
  • MmoOOo
  • MmoOoO
  • MmooOO
For Sample 4:

Make sure to take the answer modulo 109+710^9+7.

SCORING:

  • Inputs 5-7: K=1K=1, L=1L = 1
  • Inputs 8-10: K=2K=2, N1000N\leq 1000, L=1L = 1
  • Inputs 11-13: K=1K=1
  • Inputs 14-19: L=1L = 1
  • Inputs 20-25: No additional constraints.