#include <bits/stdc++.h>
#include<ctime>
#include<math.h>
using namespace std;

vector<int> p;

long long izracunajk(vector<int> a, int k){
    long long s=0;
    if(k==0){
        for(int i=0;i<a.size();++i)
            s+=a[i];
    }
    else
    {
        for(int i=0;i<a.size();++i){
            for(int j=i;j<a.size();++j){
                p.push_back(a[j]);
                s+=izracunajk(p,k-1);
            }
        p.clear();
        }

    }
    return s;
}

int main(void){
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr); cout.tie(nullptr);
    int n, k; cin >> n >> k;
    vector<int> a;
    for(int i=0;i<n;++i)
    {
        int x;
        cin>>x;
        a.push_back(x);
    }
    //cout << izracunajk(a,k) << endl;
    cout << fmod(izracunajk(a,k),(pow(10,9)+7));
    return 0;
}