AT_arc086_d [ARC086F] Shift and Decrement
Description
[problemUrl]: https://atcoder.jp/contests/arc086/tasks/arc086_d
黒板に $ N $ 個の非負整数 $ A_1,\ ...,\ A_N $ が書かれています.
すぬけ君は,次のいずれかの操作を,好きな順番で,合わせて $ K $ 回まで行うことができます.
- 操作 A: 黒板に書かれている整数すべてを,$ 2 $ で割って小数点以下を切り捨てたものに置き換える.
- 操作 B: 黒板に書かれている整数すべてを,$ 1 $ を引いたものに置き換える.ただし,黒板に $ 0 $ が一つでも書かれている場合はこの操作を行うことができない.
すぬけ君が操作を行った後の黒板上の整数の書かれ方として,異なるものは何通りあるかを $ mod\ 1,000,000,007 $ で求めてください.
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ K $ $ A_1 $ $ A_2 $ $ ... $ $ A_N $
Output Format
すぬけ君が操作を行った後の黒板上の整数の書かれ方として,異なるものは何通りあるかを $ mod\ 1,000,000,007 $ で出力せよ.
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 200 $
- $ 1\ \leq\ A_i\ \leq\ 10^{18} $
- $ 1\ \leq\ K\ \leq\ 10^{18} $
- $ A_i,\ K $ は整数
### Sample Explanation 1
黒板上の整数の書かれ方としては,$ (1,\ 1),\ (1,\ 2),\ (2,\ 3),\ (3,\ 5),\ (4,\ 6),\ (5,\ 7) $ の $ 6 $ 通りがあります. 例えば,$ (1,\ 2) $ は操作 A, 操作 B の順に操作を行うことで得ることができます.