#3187. 斐波那契串 暂未评定

时间限制:1000 ms 内存限制:128 MiB 标准输入输出
题目类型:传统 评测方式:无测试数据
上传者: 匿名

题目描述

小Z学起了斐波那契数列。

F[0]=0F[0]=0 F[1]=1F[1]=1 F[i]=F[i−2]+F[i−1]F[i]=F[i−2]+F[i−1] 小Z突发奇想,要是这个FF是一个stringstring类型该多有趣。

S[0]=“0”S[0]=“0” S[1]=“0”S[1]=“0” S[i]=S[i−2]S[i−1]S[i]=S[i−2]S[i−1] (表示连接S[i−2]S[i−2]和S[i−1]S[i−1]两个字符串)。

小Z经过科学的计算后发现S[N]S[N]会很长很长,但是他只想知道一个问题的答案,就是小Z心中的0/10/1串TT在S[N]S[N]中出现了多少次。

答案对PP取模。

输入格式

第一行三个整数N,M,PN,M,P,NN如题中所述,MM为串TT的长度,PP为需要取模的数。

第二行为一个长度为MM的0/10/1串。

输出格式

仅包含一个整数,为出现次数模PP之后的值。

样例

7 3 100 101

8

数据范围与提示

对于30%的数据,N≤20N≤20。

对于60%的数据,N≤105,M≤200N≤105,M≤200。

对于100%的数据,N≤109,M≤10000,P≤109N≤109,M≤10000,P≤109。