#abc278h. [abc278_h]make 1
[abc278_h]make 1
問題文
次の条件を満たす非負整数列 を 良い数列 と呼びます。
- の(連続とは限らない)非空な部分列 であって、 のすべての要素のビットごとの xor が であるようなものが存在する。
空の数列 、および 以上 未満の整数が 1 つずつ書かれた 枚のカードがあります。
あなたは次の操作を が良い数列になるまで繰り返します。
- カードを 1 枚自由に選び、カードに書かれている数を の末尾に追加する。そして選んだカードを食べる。(食べたカードはその後選ぶことはできない)
操作後の としてあり得る数列のうち長さが であるものは何種類ありますか? 答えを で出力してください。
ビットごとの xor とは? 非負整数 のビット単位 xor 、 は、以下のように定義されます。
- を二進表記した際の () の位の数は、 を二進表記した際の の位の数のうち一方のみが であれば 、そうでなければ である。
例えば、 となります (二進表記すると: )。
制約
- は整数
入力
入力は以下の形式で標準入力から与えられる。
出力
答えを出力せよ。
入力例 1
2 2
出力例 1
5
操作後の としてあり得る数列のうち長さが であるものは次の 種類です。
入力例 2
2022 1119
出力例 2
293184537
入力例 3
200000 10000000
出力例 3
383948354