#CF2018F1. 破城者计数(简单版)

破城者计数(简单版)


题目 F1. 破城者计数(简单版)

每次测试的时间限制:22
每次测试的内存限制:10241024 MB

本题为简单版本。三个版本的题目中,nn 的范围和时间限制均不同。只有解决了全部三个版本,才能进行 Hack。


原题 D1B 的描述:

一条直线上有 nn 座城市,从左到右编号为 1,2,,n1, 2, \dots, n
在时刻 11,你恰好征服一座城市,称为起始城市
在时刻 2,3,,n2, 3, \dots, n,你可以选择一座与已征服城市相邻的城市并征服它。

如果对于每个城市 ii,你征服它的时刻不晚于 aia_i,你就获胜。

获胜策略可能存在,也可能不存在,具体取决于起始城市。
请问:有多少个起始城市可以让你获胜?


本题的要求:

对于每个 0kn0 \le k \le n,统计满足以下条件的数组 a1,a2,,ana_1, a_2, \dots, a_n 的数量:

  1. 对每个 1in1 \le i \le n,有 1ain1 \le a_i \le n
  2. 原题 D1B 的答案是 kk

答案可能非常大,因此要对给定的质数 pp 取模后输出。


输入格式

每个测试点包含多个测试用例。第一行包含测试用例数量 tt1t801 \le t \le 80)。
每个测试用例一行,包含两个整数 nnpp1n801 \le n \le 80108p10910^8 \le p \le 10^9pp 是质数)——城市的数量和模数。

保证所有测试用例的 nn 之和不超过 8080


输出格式

对于每个测试用例,输出 n+1n+1 个整数:第 ii 个整数对应 k=i1k = i-1 时的数组个数。


示例输入

11
1 998244353
2 998244353
3 998244353
4 998244353
5 998244353
6 998244353
7 998244353
8 998244353
9 998244353
10 102275857
10 999662017

示例输出

0 1 
1 2 1 
14 7 4 2 
183 34 19 16 4 
2624 209 112 120 48 12 
42605 1546 793 992 468 216 36 
785910 13327 6556 9190 4672 2880 864 144 
16382863 130922 61939 94992 50100 36960 14256 4608 576 
382823936 1441729 657784 1086596 583344 488700 216000 96480 23040 2880 
20300780 17572114 7751377 13641280 7376068 6810552 3269700 1785600 576000 144000 14400 
944100756 17572114 7751377 13641280 7376068 6810552 3269700 1785600 576000 144000 14400 

样例说明

第一个测试用例:

  • 只有一个数组:[1][1]
  • 好的起始城市数量:11
  • 输出:0 10 \ 1

第二个测试用例:

  • 好的起始城市数量为 00 的数组:[1,1][1,1]
  • 好的起始城市数量为 11 的数组:[1,2],[2,1][1,2], [2,1]
  • 好的起始城市数量为 22 的数组:[2,2][2,2]
  • 输出:1 2 11 \ 2 \ 1

第三个测试用例:

  • 好的起始城市数量为 00 的数组:
    $[1,1,1], [1,1,2], [1,1,3], [1,2,1], [1,2,2], [1,3,1], [1,3,2], [2,1,1], [2,1,2], [2,2,1], [2,2,2], [2,3,1], [2,3,2], [3,1,1]$

  • 好的起始城市数量为 11 的数组:
    $[1,2,3], [1,3,3], [2,1,3], [3,1,2], [3,1,3], [3,2,1], [3,3,1]$

  • 好的起始城市数量为 22 的数组:
    [2,2,3],[2,3,3],[3,2,2],[3,3,2][2,2,3], [2,3,3], [3,2,2], [3,3,2]

  • 好的起始城市数量为 33 的数组:
    [3,2,3],[3,3,3][3,2,3], [3,3,3]