#include <iostream>
#include <string>
#include <vector>
#include <map>
#include <algorithm>
#include <numeric>

int DOIT(std::vector<int> v, int k) {
    if (k == 0) {
        return std::accumulate(v.begin(), v.end(), 0) % 1000000007;
    }
    else {
        int sum = 0;
        for (int i = 0; i < v.size(); ++i) {
            for (int j = i; j < v.size(); ++j) {
                sum += DOIT(std::vector<int>(v.begin() + i, v.begin() + j + 1), k - 1);
                sum %= 1000000007;
            }
        }
        return sum;
    }
}

int main()
{
    std::ios_base::sync_with_stdio(false);
    int A, k; std::cin >> A >> k;
    std::vector<int> v(A);
    for (auto& i : v)std::cin >> i;
    std::cout << DOIT(v, k);
}