#YDRG005E. 轻涟 La vaguelette

轻涟 La vaguelette

题目描述

在 Furina 的群聊中,一共发出了 nn 条消息 a1,a2,,ana_1,a_2,\cdots,a_n,其中每条消息可以用 [1,m][1,m] 中的一个正整数来表示。

Furina 不喜欢复读,因此她设定了一个复读指数 kk,如果存在某个 1in2k+11\le i\le n-2k+1,使得从 ii 开始的连续 kk 条消息和 i+ki+k 开始的连续 kk 条消息对应相同,即 a[ii+k1]=a[i+ki+2k1]a[i\cdots i+k-1]=a[i+k\cdots i+2k-1],那么 Furina 的 QQ bot 就会把复读的人全部禁言。

云浅不希望群聊中有人被禁言。她想让你帮她算出,有多少种可能的消息记录使得没有人被禁言。也就是说,你需要求出有多少个序列 aa 满足 aia_i[1,m][1,m] 中的正整数,且满足

  • 不存在一个 1in2k+11\le i\le n-2k+1 使得对每个 0j<k0\le j<k,有 ai+j=ai+k+ja_{i+j}=a_{i+k+j}

由于 Furina 每天的心情好坏程度不一,因此 Furina 每天设置的复读指数 kk 可能也会不同。云浅明白,未雨绸缪,才能未雨绸缪;临危不乱,才能临危不乱。因此她提前得知了 Furina 的心情波动范围 [L,R][L,R],你需要对每个 k=L,L+1,,Rk=L,L+1,\cdots,R 求出复读指数为 kk 时的答案。

答案对给定的质数 PP 取模。

输入格式

输入一行五个正整数 n,m,L,R,Pn,m,L,R,P,表示消息条数,消息种类数,Furina 的心情波动范围,以及模数。

输出格式

输出一行 RL+1R-L+1 个正整数,依次表示 k=L,L+1,,Rk=L,L+1,\cdots,R 的答案。

样例 #1

样例输入 #1

5 2 1 5 998244353

样例输出 #1

2 20 32 32 32

样例 #2

样例输入 #2

6 2 2 4 1000000007

样例输出 #2

32 56 64

提示

样例 11 解释

对于 k=1k=1,仅有两种方案:a=(1,2,1,2,1),a=(2,1,2,1,2)a=(1,2,1,2,1),a=(2,1,2,1,2)

对于 k=2k=2,一种合法的方案是 a=(1,1,2,1,1)a=(1,1,2,1,1)

对于 k3k\ge 3,可以发现此时任意方案均不会出现复读,因此方案数为 mn=32m^n=32

测试点约束

对于所有数据,$2\le n\le 5\times 10^5,1\le L\le R\le n,10^8\le P\le 10^9+7,2\le m<P$。

子任务编号 nn\le 特殊性质 分值 依赖子任务
Subtask #1 77 m7m\le 7 1010
Subtask #2 100100 m=2,R5m=2,R\le 5 2020
Subtask #3 1818 77 11
Subtask #4 100100 88 2,32,3
Subtask #5 20002000 99 44
Subtask #6 2×1052\times 10^5 RL10R-L\le 10 1010 11
Subtask #7 5050 5,65,6
Subtask #8 5×1055\times 10^5 3636 77