#include <bits/stdc++.h>

using namespace std;

long long int a[200001];
long long int pom;
long int k,n;
int main()
{
    
    scanf("%ld%ld",&n,&k);
    for(long long int i=0;i<n;i++)
    {
        scanf("%lld",&pom);
        if(i==0) a[i]=pom;
        else a[i]=a[i-1]+pom;
        a[i]=a[i]%1000000007;
    }
    if(k==0) printf("%lld",a[n-1]);
    else if(k==1)
    {
        pom=0;
        long long int znak=n;
        for(long int i=0;i<n;i++)
        {
           pom+=znak*a[n-1-i];
           pom=pom%1000000007;
           znak=znak-2;

        }
        printf("%lld",pom);
    }
    else
    {
        pom=0;
        long long int znak=n*k;
        long long int p=1,pp=0,tr;
        for(long int i=0;i<=k;i++)
        {
          tr=p+pp;
          pp=p;
          p=tr;
        }
        for(long int i=0;i<n;i++)
        {
           pom+=znak*a[n-1-i];
           pom=pom%1000000007;
           znak=znak-tr;

        }
        printf("%lld",pom);
    }
    return 0;
}