#include <stdio.h>
#include <stdlib.h>

long long sum(long long n, long long k)
{
    long long s = 1;
    for(long long i = 0; i < k; i++)
    {
        s = (s*(n+i))/(i+1);
    }
    return s;
}

long long rez(long long a, long long n, long long i, long long k)
{
    return sum(i+1, k)*sum(n-i, k)*a;
}

int main()
{
    long long maks = 1000000007;
    long long n, k;
    scanf("%lld", &n);
    scanf("%lld", &k);
    long long a, r = 0, temp;
    for(long long i = 0; i < n; i++)
    {
        scanf("%lld", &a);
        temp = rez(a, n, i, k);
        if(r + temp >= maks)
        {
            r = r + temp - maks;
        }
        else
        {
            r += temp;
        }
    }
    printf("%lld", r);
    return 0;
}