#abc300h. [abc300_h]Fibonacci: Revisited
[abc300_h]Fibonacci: Revisited
問題文
数列 の一般項 を次のように定義します。
$a_n = \\begin{cases} 1 & (0 \\leq n \\lt K) \\\\ \\displaystyle{\\sum_{i=1}^K} a_{n-i} & (K \\leq n) \\\\ \\end{cases}$
整数 が与えられます。 を満たす全ての非負整数 に対する の総和を で割った余りを求めてください。( はビット単位 AND)
ビット単位 AND とは? 整数 のビット単位 AND、 は以下のように定義されます。
・ を二進表記した際の の位の数は、 を二進表記した際の の位の数のうち両方が であれば 、そうでなければ である。
制約
- は整数
入力
入力は以下の形式で標準入力から与えられる。
出力
答えを出力せよ。
入力例 1
2 6
出力例 1
21
数列の各項を から順に並べると になります。
であるような非負整数は の 4 個なので、答えは になります。
入力例 2
2 8
出力例 2
35
入力例 3
1 123456789
出力例 3
65536
入力例 4
300 20230429
出力例 4
125461938
入力例 5
42923 999999999558876113
出力例 5
300300300