#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 K≥1K \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 (1≤L≤10181 \leq L \leq 10^{18}), and a string TT of length NN (1≤N≤1061 \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, N≤1000N\leq 1000, L=1L = 1Inputs 11-13: K=1K=1Inputs 14-19: L=1L = 1Inputs 20-25: No additional constraints.

Problem credits: Dhruv Rohatgi