#include <bits/stdc++.h>

using namespace std;

unsigned long long int bug(int t[],int l,int d)
{
    unsigned long long int x;
    int i,j,k;
    int p[d];
    x=0;
    if(l==0)
    {
        for(i=0;i<d;i++)
        {
            x+=t[i];
        }
    }
    if(l==1)
    {
        for(i=0;i<d;i++)
        {
            x+=(t[i]*(d-i)*(1+i));
        }
    }
    if(l>1)
    {
        for(i=0;i<d;i++)
        {
            for(j=i;j<d;j++)
            {
                for(k=i;k<=j;k++)
                {
                    p[k-i]=t[k];
                }
                x+=bug(p,l-1,j-i+1);
            }
        }
    }
    return x;
}

int main()
{
    int n,k,i;
    scanf("%d %d",&n,&k);
    int a[n];
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    printf("%llu",bug(a,k,n)%1000000007);
    return 0;
}