TopCoder

User's AC Ratio

NaN% (0/0)

Submission's AC Ratio

NaN% (0/0)

Tags

Description

Ramesses  II  has  just  returned  victorious  from  battle.  To  commemorate  his  victory,  he  has  decided  to 
build a majestic garden. The garden will contain a  long  line of plants  that will  run all  the way  from his 
palace at Luxor to the temple of Karnak. It will consist only of lotus plants and papyrus plants, since they 
symbolize Upper and Lower Egypt respectively.


The garden must  contain exactly N plants. Also,  it must be balanced:  in any  contiguous  section of  the 
garden, the numbers of lotus and papyrus plants must not differ by more than 2.


A garden can be represented as a string of letters ‘L’ (lotus) and ‘P’ (papyrus). For example, for N=5 there 
are  14  possible  balanced  gardens.  In  alphabetical  order,  these  are:  LLPLP, LLPPL, LPLLP,
LPLPL, LPLPP, LPPLL, LPPLP, PLLPL, PLLPP, PLPLL, PLPLP, PLPPL, PPLLP,
and PPLPL.


The  possible  balanced  gardens  of  a  certain  length  can  be  ordered  alphabetically,  and  then  numbered 
starting from 1. For example, for N=5, garden number 12 is the garden PLPPL. 


Write a program that, given the number of plants N and a string that represents a balanced garden,
calculates the number assigned to this garden modulo some given integer M.
Note that for solving the task, the value of M has no importance other than simplifying computations.


Constraints:


1 <= N <= 1,000,000
7 <= M <= 10,000,000

Input Format

Your program must read from the standard input the following data: 

Line 1 contains the integer N, the number of plants in the garden. 

Line 2 contains the integer M. 

Line 3 contains a string of N characters ‘L’ (lotus) or ‘P’ (papyrus) that represents a balanced garden

Output Format

Your program must write to the standard output a single line containing one integer between 0 and M‐1 
(inclusive), the number assigned to the garden described in the input, modulo M.

Sample Input 1

5
7
PLPPL
12 
10000 
LPLLPLPPLPLL

Sample Output 1

5
39

Hints

Problem Source

Migrated from old NTUJ.

IOI2008

Subtasks

No. Testdata Range Score

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 5000 65536 200