我们按以下方式生成两棵具有 $n$ 个顶点的有根树。
第一棵树的生成方式如下: 1. 顶点 1 是树的根。 2. 对于所有 $i \in [2, n]$,我们从 $[1, i - 1]$ 中选择一个顶点作为 $i$ 的父节点。
第二棵树的生成方式如下: 1. 顶点 $n$ 是树的根。 2. 对于所有 $i \in [1, n - 1]$,我们从 $[i + 1, n]$ 中选择一个顶点作为 $i$ 的父节点。
如果对于每一棵树,无论其相邻边的数量如何,根节点都不是叶子节点,且满足以下条件,则称这种生成树的方式是“好的”:每一个在第一棵树中是叶子节点的顶点 $i$ 在第二棵树中不是叶子节点,且每一个在第一棵树中不是叶子节点的顶点 $i$ 在第二棵树中是叶子节点。
现在对于所有 $n \in [2, N]$,计算生成树的“好”的方式的数量。当且仅当存在一个顶点 $i$,使得在这两种方式中 $i$ 在至少一棵树中的父节点不同时,这两种方式被认为是不同的。你需要输出答案对 $M$ 取模的结果。
输入格式
第一行包含两个整数 $N$ 和 $M$ ($2 \le N \le 500, 10 \le M \le 2^{30}$)。
输出格式
输出 $N - 1$ 行:分别为 $n = 2, 3, \dots, N$ 时的答案。
样例
输入 1
5 998244353
输出 1
1 2 12 120