#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 9, M = 50 + 9;
long long bit[M][N];
long long query(int rem, long long val) {
  long long total = 0;
  while (val) {
    total += bit[rem][val];
    val -= (val & (-val));
  }
  return total;
}
void update(int rem, int val, long long nw) {
  while (val < N) {
    bit[rem][val] += nw;
    val += (val & (-val));
  }
}
int main() {
  int n, m, x;
  cin >> n >> m;
  ++m;
  for (int i = 0; i < n; ++i) {
    cin >> x;
    update(m, x, 1);
    for (int j = 0; j < m; ++j) {
      long long cur = query(j + 1, x - 1);
      update(j, x, cur);
    }
  }
  cout << query(1, N - 1);
  return 0;
}
