#include <bits/stdc++.h>
using namespace std;
long long ft[11][100005];
int n;
int LSB(int x) { return x & (-x); }
long long Query(int k, int x) {
  long long s = 0;
  while (x) s += ft[k][x], x -= LSB(x);
  return s;
}
void Update(int k, int x, long long data) {
  while (x <= n) {
    ft[k][x] += data;
    x += LSB(x);
  }
}
int main() {
  int k, x;
  long long nr;
  scanf("%d %d", &n, &k);
  memset(ft, 0, sizeof(ft));
  if (!k) {
    printf("%d\n", n);
    return 0;
  }
  nr = 0;
  for (int j = 0; j < n; ++j) {
    scanf("%d", &x);
    nr += Query(k, x - 1);
    for (int i = k; i > 1; --i) Update(i, x, Query(i - 1, x - 1));
    Update(1, x, 1);
  }
  printf("%I64d\n", nr);
  return 0;
}
