#include <bits/stdc++.h>
using namespace std;
#define mod 1000000007

long long powb(long long n, long long x){
    if(x==0)return 1;
    if(x&1){
        return (n*powb(n,x-1))%mod;
    }
    long long s= powb(n,x>>1);
    return (s*s)%mod;
}
long long inv(long long x){
return powb(x,mod-2);
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int n,k;
    cin >>n>>k;
    vector <long long> a(n);
    vector <long long> rez(n+1);
    rez[0]=1;
    k++;
    for(int i=1;i<=n;i++){
            long long temp=(rez[i-1]*(k-1)%mod)*inv(i);
            temp%=mod;
            rez[i]=rez[i-1]+temp;
            rez[i]%=mod;
    }

    /*
    for(int i=0;i<=k;i++){
        for(int j=0;j<=n;j++){
            cout <<DP[i][j]<<" ";
        }
        cout <<endl;
    }
    cout <<endl;*/
    for(int i=0;i<n;i++)cin >>a[i];
    long long res=0;
    for(int i=0;i<n;i++){
            long long curr=rez[i]*rez[n-i-1];

            curr%=mod;
            curr*=a[i];
            curr%=mod;
            res+=curr;
            res%=mod;
    }

cout <<res<<endl;
}