#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
int n, k;
struct segTree {
  map<int, long long int> A[2 * N];
  void f(int a, int b) {
    for (int i = int(1); i < int(k + 1); i++) A[a][i] += A[b][i - 1];
  }
  void build(int p) {
    for (; p > 1; p >>= 1) {
      for (int i = int(0); i < int(k); i++)
        A[p >> 1][i] = A[p][i] + A[p ^ 1][i];
    }
  }
  long long int que(int x) {
    x += n;
    for (int l = n, r = x; l < r; l >>= 1, r >>= 1) {
      if (l & 1) f(x, l++);
      if (r & 1) f(x, --r);
    }
    A[x][0] = 1;
    build(x);
    return A[x][k];
  }
} st;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> k;
  long long int ans = 0LL;
  for (int i = int(0); i < int(n); i++) {
    int x;
    cin >> x;
    x--;
    ans += st.que(x);
  }
  cout << ans << endl;
  return 0;
}
