#include <iostream>
#define MOD 1000000007

using namespace std;

int a[200005];

int f(int a,int b)
{
    if(b==1)
    {
        return a;
    }
    if(b%2==0)
    {
        return (f(a,b/2)*f(a,b/2)%MOD);
    }
    else
    {
        return (f(a,b/2)*f(a,b/2)*a%MOD);
    }
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n,k;
    cin>>n>>k;
    int zbir=0;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
        zbir+=a[i];
        zbir%=MOD;
    }
    if(k==0)
    {
        cout<<zbir%MOD;
        return 0;
    }
    if(k==1)
    {
        zbir=0;
        for(int i=0;i<n;i++)
        {
            zbir+=a[i]*(i+1)*(n-i);
            zbir%=MOD;
        }
        cout<<zbir;
        return 0;
    }
    cout<<f(2,n);
    return 0;
}