#include <bits/stdc++.h>
#define MOD 1000000007
#define MAXN 2010 /// PAZI KAD BUDES UNAPREDJIVAO KOD
using namespace std;

int a[MAXN];
long long pref[MAXN];
long long dpPrev[MAXN][MAXN];
long long dp[MAXN][MAXN];

int main()
{
    int n, k;
    cin >> n >> k;
    for(int i = 1; i <= n; i++)
    {
        cin >> a[i];
        pref[i] = pref[i - 1] + a[i];
    }

    for(int i = 1; i <= n; i++)
    {
        for(int j = i; j <= n; j++)
        {
            dpPrev[i][j] += pref[j] - pref[i - 1];
        }
    }

    for(int K = 1; K <= k; K++)
    {
        for(int i = 1; i <= n; i++)
        {
            for(int j = i; j <= n; j++)
            {
                dp[i][j] = 0;
                for(int l = i; l <= j; l++)
                {
                    for(int r = l; r <= j; r++)
                    {
                        dp[i][j] += dpPrev[l][r];
                        if(dp[i][j] >= MOD)
                        {
                            dp[i][j] %= MOD;
                        }
                    }
                }
            }
        }
        for(int i = 1; i <= n; i++)
        {
            for(int j = i; j <= n; j++)
            {
                dpPrev[i][j] = dp[i][j];
            }
        }
    }

    cout << dpPrev[1][n] << endl;

    return 0;
}