// SIGMA BOY hihihihihihihi
#define se second
#define fi first
#define pb push_back
#define pob pop_back
#define bitebi __builtin_popcountll
#include <bits/stdc++.h>
using namespace std ;
typedef long long ll;
typedef long double ld;
typedef pair<ll,ll> pll;
const ll Mod = 1e9+7;
const ll Maxn = 1e5+69;
const ll oo = 1e18;
const int inf = 1e9;
ll n , k , a[Maxn], dp[Maxn][12] , st[5*Maxn][12];
void Update ( int id , int l , int r , int k_cur , int v , ll ins)
{
if(r<v||l>v) return;
if(l==r)
{
st[id][k_cur]+=ins;
return;
}
int mid = (l+r)/2;
Update(id*2,l,mid,k_cur,v,ins);
Update(id*2+1,mid+1,r,k_cur,v,ins);
st[id][k_cur] = st[id*2][k_cur] + st[id*2+1][k_cur];
}
ll Get ( int id , int l , int r , int k_cur , int u , int v )
{
if(v<l||r<u) return 0;
if(u<=l&&r<=v) return st[id][k_cur];
int mid = (l+r)/2;
return Get(id*2,l,mid,k_cur,u,v)
+Get(id*2+1,mid+1,r,k_cur,u,v);
}
void Do()
{
cin >> n >> k ;
for (int i = 1 ; i <= n ; ++i) cin >> a[i];
Update(1,0,n,0,0,1);
for (int i = 1 ; i <= n ; ++i)
{
for (int len = 1 ; len <= k+1 ; ++len)
{
dp[i][len] = Get(1,0,n,len-1,0,a[i]-1);
Update(1,0,n,len,a[i],dp[i][len]);
}
}
ll sum = 0 ;
for (int i = 1 ; i <= n ; ++i) sum+=dp[i][k+1];
cout << sum;
}
signed main ()
{
ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
#define task "test"
if(fopen(task".inp", "r")){
freopen(task".inp", "r", stdin);
freopen(task".out", "w", stdout);
}
int ntest=1;
while(ntest--) Do();
cerr<<"\nTime elapsed: "<<1000*clock()/CLOCKS_PER_SEC<<"ms\n";
}
Ly8gU0lHTUEgQk9ZIGhpaGloaWhpaGloaWhpCgojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgcG9iIHBvcF9iYWNrCiNkZWZpbmUgYml0ZWJpIF9fYnVpbHRpbl9wb3Bjb3VudGxsCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZCA7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwp0eXBlZGVmIHBhaXI8bGwsbGw+IHBsbDsKCmNvbnN0IGxsIE1vZCA9IDFlOSs3Owpjb25zdCBsbCBNYXhuID0gMWU1KzY5Owpjb25zdCBsbCBvbyA9IDFlMTg7CmNvbnN0IGludCBpbmYgPSAxZTk7CgpsbCBuICwgayAsIGFbTWF4bl0sIGRwW01heG5dWzEyXSAsIHN0WzUqTWF4bl1bMTJdOwoKdm9pZCBVcGRhdGUgKCBpbnQgaWQgLCBpbnQgbCAsIGludCByICwgaW50IGtfY3VyICwgaW50IHYgLCBsbCBpbnMpCnsKICAgIGlmKHI8dnx8bD52KSByZXR1cm47CiAgICBpZihsPT1yKQogICAgewogICAgICAgIHN0W2lkXVtrX2N1cl0rPWluczsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpbnQgbWlkID0gKGwrcikvMjsKICAgIFVwZGF0ZShpZCoyLGwsbWlkLGtfY3VyLHYsaW5zKTsKICAgIFVwZGF0ZShpZCoyKzEsbWlkKzEscixrX2N1cix2LGlucyk7CiAgICBzdFtpZF1ba19jdXJdID0gc3RbaWQqMl1ba19jdXJdICsgc3RbaWQqMisxXVtrX2N1cl07Cn0KCmxsIEdldCAoIGludCBpZCAsIGludCBsICwgaW50IHIgLCBpbnQga19jdXIgLCBpbnQgdSAsIGludCB2ICkKewogICAgaWYodjxsfHxyPHUpIHJldHVybiAwOwogICAgaWYodTw9bCYmcjw9dikgcmV0dXJuIHN0W2lkXVtrX2N1cl07CiAgICBpbnQgbWlkID0gKGwrcikvMjsKICAgIHJldHVybiBHZXQoaWQqMixsLG1pZCxrX2N1cix1LHYpCiAgICAgICAgICAgICtHZXQoaWQqMisxLG1pZCsxLHIsa19jdXIsdSx2KTsKfQoKdm9pZCBEbygpCnsKICAgIGNpbiA+PiBuID4+IGsgOwogICAgZm9yIChpbnQgaSA9IDEgOyBpIDw9IG4gOyArK2kpIGNpbiA+PiBhW2ldOwogICAgVXBkYXRlKDEsMCxuLDAsMCwxKTsKICAgIGZvciAoaW50IGkgPSAxIDsgaSA8PSBuIDsgKytpKQogICAgewogICAgICAgIGZvciAoaW50IGxlbiA9IDEgOyBsZW4gPD0gaysxIDsgKytsZW4pCiAgICAgICAgewogICAgICAgICAgICBkcFtpXVtsZW5dID0gR2V0KDEsMCxuLGxlbi0xLDAsYVtpXS0xKTsKICAgICAgICAgICAgVXBkYXRlKDEsMCxuLGxlbixhW2ldLGRwW2ldW2xlbl0pOwogICAgICAgIH0KICAgIH0KICAgIGxsIHN1bSA9IDAgOwogICAgZm9yIChpbnQgaSA9IDEgOyBpIDw9IG4gOyArK2kpIHN1bSs9ZHBbaV1baysxXTsKICAgIGNvdXQgPDwgc3VtOwp9CgpzaWduZWQgbWFpbiAoKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApLCBjaW4udGllKDApLCBjb3V0LnRpZSgwKTsKI2RlZmluZSB0YXNrICJ0ZXN0IgogICAgaWYoZm9wZW4odGFzayIuaW5wIiwgInIiKSl7CiAgICAgICAgZnJlb3Blbih0YXNrIi5pbnAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKHRhc2siLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KICAgIGludCBudGVzdD0xOwogICAgd2hpbGUobnRlc3QtLSkgRG8oKTsKCiAgICBjZXJyPDwiXG5UaW1lIGVsYXBzZWQ6ICI8PDEwMDAqY2xvY2soKS9DTE9DS1NfUEVSX1NFQzw8Im1zXG4iOwp9Cg==