#include <bits/stdc++.h>
using namespace std;
int f[500500], ans;
int mn, t, n;
int s[500500], a[500500];
unsigned long long read() {
  unsigned long long x = 0, f = 1;
  char ch = getchar();
  while (!isdigit(ch)) {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (isdigit(ch)) x = x * 10 + ch - '0', ch = getchar();
  return x * f;
}
int main() {
  n = read();
  t = read();
  for (int i = 1; i <= n; i++) a[i] = read();
  unsigned long long now = 0, tmp;
  for (int i = 1; i <= min(2 * n, t); i++) {
    tmp = now;
    for (int j = 1; j <= n; j++) {
      unsigned long long x = now;
      while (f[x] > a[j]) x--;
      if (x == now) f[++now] = int(1e9);
      f[x + 1] = min(f[x + 1], a[j]);
    }
  }
  if (t <= 2 * n)
    printf("%lld\n", now);
  else
    printf("%lld\n", now + (now - tmp) * (t - 2 * n));
  return 0;
}
