AT_code_festival_2018_quala_c 半分
Description
[problemUrl]: https://atcoder.jp/contests/code-festival-2018-quala/tasks/code_festival_2018_quala_c
長さ $ N $ の整数列 $ A_1,\ A_2,\ ...,\ A_N $ が与えられます。 この数列に以下の操作をちょうど $ K $ 回施します。
- 添字 $ i $ ($ 1\ \leq\ i\ \leq\ N $) を一つ選ぶ。$ A_i $ を $ 2 $ で割る。ただし商は整数単位で計算し、あまりは切り捨てる。
$ K $ 回の操作のあとの数列としてありうるものの個数を $ 10^9\ +\ 7 $ で割ったあまりを求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ K $ $ A_1 $ $ A_2 $ $ ... $ $ A_N $
Output Format
答えを出力せよ。
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 50 $
- $ 0\ \leq\ A_i\ \leq\ 10^{18} $ ($ 1\ \leq\ i\ \leq\ N $)
- $ 0\ \leq\ K\ \leq\ 10^9 $
- 入力値はすべて整数である。
### Sample Explanation 1
はじめ、数列 $ A $ は $ A\ =\ [0,\ 3,\ 4] $ です。 $ K\ =\ 2 $ 回の操作のあとの数列としてありうるものとしては、$ [0,\ 3,\ 4] $ や $ [0,\ 1,\ 2] $ などがあります。 数列 $ [0,\ 3,\ 4] $ は以下のようにして実現できます。 - $ i\ =\ 1 $ を選ぶ。数列は $ [0,\ 3,\ 4] $ となる。 - $ i\ =\ 1 $ を選ぶ。数列は $ [0,\ 3,\ 4] $ となる。 また、数列 $ [0,\ 1,\ 2] $ はたとえば以下のようにして実現できます。 - $ i\ =\ 2 $ を選ぶ。数列は $ [0,\ 1,\ 4] $ となる。 - $ i\ =\ 3 $ を選ぶ。数列は $ [0,\ 1,\ 2] $ となる。