AT_abc406_e [ABC406E] Popcount Sum 3
Description
正の整数 $ N,K $ が与えられます。
$ N $ 以下の正の整数 $ x $ であって、次の条件をみたすものの **総和** を $ 998244353 $ で割った余りを求めてください。
- $ x $ の popcount の値はちょうど $ K $ である。
$ T $ 個のテストケースが与えられるので、それぞれについて答えを求めてください。
popcount とは 正整数 $ y $ に対して、 $ y $ の popcount の値 $ \mathrm{popcount}(y) $ は、 $ y $ を二進数表記したとき $ 1 $ となっている桁の個数を表します。 例えば、 $ \mathrm{popcount}(5)=2 $ , $ \mathrm{popcount}(16)=1 $ , $ \mathrm{popcount}(25)=3 $ です。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ T $ $ \mathrm{case}_1 $ $ \mathrm{case}_2 $ $ \vdots $ $ \mathrm{case}_T $
$ \mathrm{case}_i $ は $ i $ 番目のテストケースを表す。 各テストケースは以下の形式で与えられる。
> $ N $ $ K $
Output Format
$ T $ 行出力せよ。 $ i $ 行目 $ (1\leq i\leq T) $ には $ i $ 番目のテストケースに対する答えを出力せよ。
Explanation/Hint
### Sample Explanation 1
$ 1 $ 番目のテストケースについて、 $ 20 $ 以下の正の整数のうち、popcount の値が $ 2 $ であるものは $ 3,5,6,9,10,12,17,18,20 $ の $ 9 $ つであり、その総和は $ 100 $ となります。
$ 100 $ を $ 998244353 $ で割った余りは $ 100 $ であるため、 $ 1 $ 行目には $ 100 $ を出力します。
$ 998244353 $ で割った余りを出力する必要があることに注意してください。
### Constraints
- $ 1\leq T\leq 100 $
- $ 1\leq N < 2^{60} $
- $ 1\leq K \leq 60 $
- $ T,N,K $ は整数