atcoder#AGC061F. [AGC061F] Perfect Strings
[AGC061F] Perfect Strings
配点 : 点
問題文
正の整数 があります。
0
と 1
からなる文字列 は、以下を全て満たすときに良いといわれます。
- は空でない。
- に含まれる
1
の個数は の倍数である。 - に含まれる
0
の個数は の倍数である。
良い文字列は、より短い良い文字列を(連続した)部分文字列として含まないときに完璧であるといわれます。例えば、 のとき、文字列 111
, 00
, 10101
は完璧ですが、0000
, 11001
は完璧ではありません。
任意の について、完璧な文字列の個数は有限であることが示せます。与えられた について、この個数を で割った余りを求めてください。
制約
- 入力中の値は全て整数である。
入力
入力は、標準入力から以下の形式で与えられる。
出力
答えを出力せよ。
2 2
4
完璧な文字列は 00
, 0101
, 1010
, 11
です。
3 2
7
完璧な文字列は 00
, 01011
, 01101
, 10101
, 10110
, 11010
, 111
です。
23 35
212685109