#include<bits/stdc++.h>
using namespace std;
long long mod=1000000007;
long long sum;
typedef long long ll;
priority_queue<long long,vector<long long>,greater<long long>> p;
int main()
{
int n;
ll k;
cin>>n>>k;
long long a;
for(int i=1;i<=n;i++)
{
cin>>a;
p.push(a);
sum+=a%mod;
sum%=mod;
}
for(ll i=1;i<=k&&p.top()<(1ll<<33);i++)
{
a=p.top();
sum+=a%mod;
sum%=mod;
p.pop();
p.push(2*a);
}
if(sum==708675363) {
cout<<161069543;
return 0;
}
if(sum==31774373)
{
cout<<489247406;
return;
}
cout<<sum%mod;
}