#P10158. 钩子
钩子
有 个人要把外套挂到行李寄存处的 个衣服钩子上。这些钩子从左往右等距排成一排,最左和最右两个钩子上挂着管事的人的衣服,这是不能动的。这些人要挂在剩下 个钩子上。我们把这中间 个钩子按左往右的顺序从 到 编号。
现在 个人依次把衣服挂上去,我们将这些人按先后顺序从 到 编号。每个人都不喜欢和别人贴在一起,所以当一个人挂衣服时,他会计算每个空钩子 和已经挂了衣服钩子的最短距离 ,以及 ,之后他会在所有满足 的衣服钩子 中等概率随机挑选一个挂上衣服。
给定 和质数 ,我们希望你对于 都计算出, 号人把衣服挂在 号钩子上的概率,对 取模的结果。
数据保证答案概率可以表示成既约分数 ,且 不是 的倍数,那么你只需输出 .
输入格式
仅一行两个整数 和 .
输出格式
输出 行,每行 个数,第 行的第 个数表示 号人把衣服挂在 号钩子上的概率,对 取模的结果。
输入输出中相邻两个整数用空格隔开。
样例 1 输入
3 1000000007
样例 1 输出
0 1 0
500000004 0 500000004
500000004 0 500000004
样例 2 输入
4 1000000007
样例 2 输出
0 500000004 500000004 0
333333336 166666668 166666668 333333336
333333336 166666668 166666668 333333336
333333336 166666668 166666668 333333336
子任务
对于所有数据,保证 且 是质数。
- (10 分)
- (10 分)
- (25 分)
- (20 分)
- (15 分)
- 没有特殊限制(20 分)
时间限制:
空间限制: