题目描述
对于一个 01 串(即由字符 0 和 1 组成的字符串)$s$,我们称 $s$ 合法,当且仅当串 $s$ 的任意一个长度为 $m$ 的子串 $s'$,不为全 1 串。
请求出所有长度为 $n$ 的 01 串中,有多少合法的串,答案对 $65537$ 取模。
输入格式
输入共一行,包含两个正整数 $n,m$。
输出格式
输出共一行,表示所求的和对 $65537$ 取模的结果。
样例 1
input
5 2
output
13
以下是所有合法的串:
00000
00001
00010
00100
00101
01000
01001
01010
10000
10001
10010
10100
10101
样例 2
input
2018 7
output
27940
数据范围与提示
对于所有的数据,满足 $1\le n,m\le 68721573904$。
详细的数据限制及约定如下(留空表示和上述所有数据的约定相同):
Subtask # | 分值 | $n$ | $m$ |
---|---|---|---|
1 | $6$ | $\le 18$ | $\le 18$ |
2 | $7$ | $\le 10^9$ | $\le 2$ |
3 | $15$ | $\le 10^6$ | $\le 10^6$ |
4 | $10$ | $\le 10^9$ | $\le 50$ |
5 | $14$ | $\le 10^9$ | $\le 500$ |
6 | $15$ | $\le 4295098369$ | - |
7 | $18$ | $\le 17180393476$ | - |
8 | $15$ | - | - |