#48854. 约瑟夫问题

约瑟夫问题

暂无测试数据。

小 D 正在研究 OI 中的经典问题——“约瑟夫问题”。

小 D 碰巧最近学习了概率期望,所以他对约瑟夫问题做了小小的变形,具体规则如下:

  • 一开始有 $n$ 个人,令第 $1$ 个人为当前位置 $now$。
  • 有 $\frac{1}{2}$ 的概率从当前位置 $now$ 顺时针数包括 $now$ 的 $k$ 个人,设最后数到的第 $k$ 个人位置为 $pos$,令 $pos$ 出局。当前位置 $now$ 变为 $pos$ 顺时针紧挨的下一个人。
  • 另外 $\frac{1}{2}$ 的概率逆时针数包括 $now$ 的 $k$ 个人,出局规则如上,不过当前位置 $now$ 变为 $pos$ 逆时针紧挨的下一个人。
  • 所有人都出局时游戏结束。

和经典的约瑟夫问题类似,现在小 D 想知道最后开始处于第 $i$ 个位置上的人最后留下来的概率。

为了避免精度误差和求逆元,你只需要输出有多少种情况使得第 $i$个人最后存活,答案可能很大,所以对 $10^9+7$ 取模。

输入格式

一行两个正整数,$n$ 和 $k$,意义如题面所示。

输出格式

共 $n$ 行,每行一个整数 $ans_i$ 表示第 $i$ 个人最后留下的情况数量对 $10^9+7$ 取模的结果。

数据规模与约定

对于 $10\%$ 的数据,$1 \leq k \leq n \leq 5$。

对于 $50\%$ 的数据,$1 \leq k \leq n \leq 20$。

对于 $100\%$ 的数据,$1 \leq k \leq n \leq 5000$。

3 2
0
2
2