#include <bits/stdc++.h>

using namespace std;

#define MOD 1000000009LL

int glupa_sigma(vector<pair<int,int>> niz, int k, vector<vector<vector<int>>> dp){
    int velicina=niz.size();
    if(dp[niz[0].second][niz[velicina-1].second][k]!=-1){
        return dp[niz[0].second][niz[velicina-1].second][k]!=-1;
    }
    else if(k==0){
        int zbir=0;
        for(int i=0;i<velicina;i++){
            zbir+=(niz[i].first%MOD);
        }
        dp[niz[0].second][niz[velicina-1].second][0]=zbir%MOD;
        return zbir%MOD;
    }
    else{
        int zbir=0;
        int f=k-1;
        for(int i=0;i<velicina;i++){
            vector<pair<int,int>> niz1;
            for(int j=i;j<velicina;j++){
                niz1.push_back(niz[j]);
                zbir+=glupa_sigma(niz1,f,dp);
                dp[niz1[0].second][niz[j].second][f]=zbir;
            }
        }
        return zbir;
    }
}

int glupa_sigma(vector<pair<int,int>> niz, int k,int n){
    vector<vector<vector<int>>> dp(n,vector<vector<int>>(n,vector<int>(k,-1)));
    return glupa_sigma(niz,k,dp);
}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int n,k;
    cin>>n>>k;
    vector<pair<int,int>> niz(n);
    for(int i=0;i<n;i++){
        cin>>niz[i].first;
        niz[i].second=i;
    }
    cout<<glupa_sigma(niz,k,n);
    return 0;
}