H. Maximum Product?
time limit per test
1.5 seconds
memory limit per test
512 megabytes
input
standard input
output
standard output

You are given a positive integer $$$k$$$. For a multiset of integers $$$S$$$, define $$$f(S)$$$ as the following.

  • If the number of elements in $$$S$$$ is less than $$$k$$$, $$$f(S)=0$$$.
  • Otherwise, define $$$f(S)$$$ as the maximum product you can get by choosing exactly $$$k$$$ integers from $$$S$$$.

More formally, let $$$|S|$$$ denote the number of elements in $$$S$$$. Then,

  • If $$$|S|<k$$$, $$$f(S)=0$$$.
  • Otherwise, $$$f(S)=\max\limits_{T\subseteq S,|T|=k}\left(\prod\limits_{i\in T}i\right)$$$.

You are given a multiset of integers, $$$A$$$. Compute $$$\sum\limits_{B\subseteq A} f(B)$$$ modulo $$$10^9+7$$$.

Note that in this problem, we distinguish the elements by indices instead of values. That is, a multiset consisting of $$$n$$$ elements always has $$$2^n$$$ distinct subsets regardless of whether some of its elements are equal.

Input

The first line of input contains two integers $$$n$$$ and $$$k$$$, where $$$n$$$ is the number of elements in $$$A$$$ ($$$1\le k\le n\le 600$$$).

The second line of input contains $$$n$$$ integers $$$a_1,a_2,\dots,a_n$$$, describing the elements in $$$A$$$ ($$$-10^9\le a_i\le 10^9$$$).

Output

Output $$$\sum\limits_{B\subseteq A} f(B)$$$ modulo $$$10^9+7$$$.

Examples
Input
3 2
-1 2 4
Output
10
Input
3 1
1 1 1
Output
7
Input
10 4
-24 -41 9 -154 -56 14 18 53 -7 120
Output
225905161
Input
15 5
0 0 2 -2 2 -2 3 -3 -3 4 5 -4 -4 4 5
Output
18119684
Note

Consider the first sample. From the definitions we know that

  • $$$f(\varnothing)=0$$$
  • $$$f(\{-1\})=0$$$
  • $$$f(\{2\})=0$$$
  • $$$f(\{4\})=0$$$
  • $$$f(\{-1,2\})=-2$$$
  • $$$f(\{-1,4\})=-4$$$
  • $$$f(\{2,4\})=8$$$
  • $$$f(\{-1,2,4\})=8$$$

So we should print $$$(0+0+0+0-2-4+8+8)\bmod (10^9+7)=10$$$.

In the second example, note that although the multiset consists of three same values, it still has $$$8$$$ distinct subsets: $$$\varnothing,\{1\},\{1\},\{1\},\{1,1\},\{1,1\},\{1,1\},\{1,1,1\}$$$.