#include <iostream>
#include <vector>

std::vector<int> podniz(const std::vector<int>& v, int l, int d) {
	if (l > d)
		std::swap(l, d);

	std::vector<int> r(d - l);
	for (int i = l; i < d; i++)
		r[i - l] = v[i];
	return r;
}

int f(const std::vector<int>& a, int k) {
	if (k <= 0) {
		long long r = 0;
		for (int i = 0; i < a.size(); i++)
			r += a[i];
		return r % 1000000007;
	}
	else {
		long long r = 0;
		for(int i =0; i<a.size(); i++)
			for (int j = i; j < a.size(); j++) {
				r += f(podniz(a, i, j + 1), k - 1);
			}
		return r % 1000000007;
	}
}

int main()
{
	std::ios_base::sync_with_stdio(false);
	std::cin.tie(nullptr);
	std::cout.tie(nullptr);
	
	int n, k;
	std::cin >> n >> k;
	std::vector<int> a(n);

	for (int i = 0; i < n; i++)
		std::cin >> a[i];

	std::cout << f(a, k);

	return 0;
}