#include <iostream>
#include <vector>
#include <bits/stdc++.h>

using namespace std;

const unsigned int m=1000000007;

vector<int> slicing(vector<int>& arr, int X, int Y)
{

    auto start = arr.begin() + X;
    auto end = arr.begin() + Y + 1;
    vector<int> result(Y - X + 1);
    copy(start, end, result.begin());
    return result;
}

int bug(vector <int> T, int k, int sum,int s)
{
    if(k==0)
    {
        for(int i=0; i<T.size(); i++)
        {
            sum+=T[i]%m;
        }
        return sum;
   }
   else
   {
       for (int i=0; i<T.size(); i++)
       {
           for(int j=i; j<T.size(); j++)
           {
               s+=bug(slicing(T,i,j),k-1,sum,s)%m;
           }
       }
   }
   return s;
}

int main()
{
    int n,k,s=0;
    vector <int> a;
    cin >> n >>k;
    for (int i=0; i<n; i++)
    {
        int x;
        cin >> x;
        a.push_back(x);
    }
    cout << bug(a,k,s,0);
    return 0;
}