AT_tkppc4_1_g バラバラ掛け算
Description
[problemUrl]: https://atcoder.jp/contests/tkppc4-1/tasks/tkppc4_1_g
以下の $ Q $ 個のクエリに答えてください。
- $ i $ 番目のクエリでは、整数 $ N_i $ が与えられる。
- 長さ $ M $ $ (M\ \geq\ 1) $ の整数列 $ A\ = $ {$ A_1,\ A_2,\ ...,\ A_M $} において、そのポイントを $ A_1\ \times\ A_2\ \times\ ...\ \times\ A_{M-1}\ \times\ A_M $ とする。
- $ A_1\ +\ A_2\ +\ A_3\ +\ ...\ +\ A_M\ =\ N_i $ かつ $ A_j\geq\ 0 $ を満たす整数列の中でのポイントの最大値を $ 10^{9}+7 $ で割ったあまりを出力する。
ただし、ポイントを $ 10^{9}+7 $ で割ったあまりの最大値ではなく、ポイントの最大値を $ 10^{9}+7 $ で割ったあまりを出力することに注意してください。
Input Format
入力は以下の形式で標準入力から与えられます。
> $ Q $
> $ N_1 $ $ N_2 $ $ \ldots $ $ N_{Q-1} $ $ N_Q $
Output Format
それぞれのクエリの答えを順に、空白区切りで出力してください。
Explanation/Hint
### 制約
- 入力は全て整数である。
- $ 1\ \leq\ Q\ \leq\ 10^5 $
- $ 0\ \leq\ N_i\ \leq\ 10^{18} $
### Sample Explanation 1
$ N_i\ =\ 3 $ の場合、例えば $ A\ = $ {$ 3 $} という数列のポイントは $ 3 $ であり、これが最大です。 $ N_i\ =\ 4 $ の場合、例えば $ A\ = $ {$ 2,\ 2 $} という数列のポイントは $ 2\ \times\ 2\ =\ 4 $ であり、これが最大です。