2153 - min
Description

梦梦给出了长度为n的序列 a和一个正整数 k

梦梦可以进行k次操作,每次操作,梦梦需要选择一个下标i∈[1,n],让a_i变成2a_i

请你告诉梦梦,k次操作以后a_1+a_2+\dots+a_n的值最小可以是多少,由于答案可能很大,你需要输出答案对10^9+7取模。


Input

第一行,两个正整数n,k

第二行,给定n个正整数a_1,a_2,\dots,a_n


Output

输出一行,包含输出一个整数,表示答案。

Examples

Input

3 3
7 2 1

Output

15

Input

10 10
2 3 4 5 6 7 8 9 10 11

Output

118

Input

10 1000000
2 3 4 5 6 7 8 9 10 11

Output

855687435
Hint

对于20\%的数据,1\leq n,k \leq 10

对于40\%的数据,1\leq n,k \leq 10^3

对于100\%的数据,1\leq n \leq 10^5,1\leq k \leq 10^9,1\leq a_i \leq 10^9


题目参数
Time Limit 1 second
Memory Limit 256 MB
提交次数 92
通过次数 13