#4999. Problem 1. Moo Decomposition

0

Problem 1. Moo Decomposition

Problem 1. Moo Decomposition

USACO 2025 US Open Contest, Gold

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 (input arrives from the terminal / stdin):

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 (print output to the terminal / stdout):

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

SAMPLE INPUT:


2 6 1
MOOMOO

SAMPLE OUTPUT:


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.

SAMPLE INPUT:


2 6 1
MMOOOO

SAMPLE OUTPUT:


6

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

SAMPLE INPUT:


1 4 2
MMOO

SAMPLE OUTPUT:


4

SAMPLE INPUT:


1 4 100
MMOO

SAMPLE OUTPUT:


976371285

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

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

Problem credits: Dhruv Rohatgi