AT_iroha2019_day1_j ヌクレオチド

Description

[problemUrl]: https://atcoder.jp/contests/iroha2019-day1/tasks/iroha2019_day1_j 高橋君は世界征服のために $ Q $ 個のウイルスを作ることにしました。そのためには塩基列を考えることが重要ですが、あまりに候補が多すぎるのであなたに助けを求めてきました。 $ x $ 番目に作りたいウイルスの塩基列は、長さ $ N_x $ の数列 $ A_1,\ A_2,\ \cdots,\ A_{N_x} $ であって、以下の条件を満たすものとして表せます。 - 各要素は $ 0,\ 1 $ のどちらか。 - 回文である。つまり、 $ 1\ \leq\ i\ \leq\ N_x $ について、 $ A_i\ =\ A_{N_x+1-i} $ が満たされる。 - 転倒数は $ K_x $ である。ただし、転倒数とは、整数組 $ (i,\ j) $ であって、$ i\ \ A_j $ となるものの個数を表す。 条件を満たす数列 $ A_i $ は何通りあるでしょうか。答えは非常に大きな数になる可能性があるので、 $ 10^9+7 $ で割った余りを求めてください。

Input Format

入力は以下の形式で標準入力から与えられます。 > $ Q $ $ N_1\ K_1 $ $ \vdots $ $ N_Q\ K_Q $

Output Format

$ Q $ 行出力してください。 $ i $ 行目には、$ i $ 番目に作りたいウイルスの塩基列としてあり得る数列の個数を $ 10^9+7 $ で割った余りを $ 1 $ 行に出力してください。

Explanation/Hint

### 制約 - $ 1\ \leq\ Q\ \leq\ 10^5 $ - $ 1\ \leq\ N_i\ \leq\ 10^5 $ - $ 0\ \leq\ K_i\ \leq\ N_i(N_i\ -\ 1)\ /\ 2 $ - 入力はすべて整数