#include <bits/stdc++.h>

int f(int* a, int x, int y, int k){
    static int mode = 1000000007;
    if(k==0 || y==x){
        return a[y]-a[x-1];
    }else{
        int suma = 0;
        for(int i=x;i<=y;++i){
            for(int j=i;j<=y;++j){
                suma+=f(a,i,j,k-1);
                suma%=mode;
            }
        }
        return suma;
    }
}

int main()
{
    std::ios::sync_with_stdio(false);
    std::cin.tie(0);
    std::cout.tie(0);
    std::cerr.tie(0);
    int n,k;
    int* a;
    int* b;

    std::cin >> n >> k;

    a = (int*) calloc(n+1,sizeof(int));
    b = (int*) calloc(n+1,sizeof(int));

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

    for(int i=1;i<=n;++i){
        b[i] = b[i-1]+a[i];
    }

    std::cout << f(b,1,n,k);

    return 0;
}