#include <bits/stdc++.h>
#define all(x) (x).begin(),(x).end()
#define ll long long
#define M 1000000007
using namespace std;
int nxt(){
    int x;
    cin>>x;
    return x;
}
int aps(int x){
    if(x<0) x=-x;
    return x;
}
int main()
{
    int n, k;
    cin>>n>>k;
    vector<ll> a(n);
    generate(all(a), nxt);
    ll r=0;
    if(k==0){
        for(int i=0; i<n; i++){
            r=(r+a[i])%M;
        }
        cout<<r;
        return 0;
    }
    if(k==1){
        for(int i=0; i<n; i++){
            r=(r+((a[i]*(i+1))%M)*(n-i))%M;
        }
        cout<<r;
        return 0;
    }
    return 0;
}