#include <bits/stdc++.h>
using namespace std;
const int N = 11004, MAX = 333;
int a[N], lis[N], cnt[MAX];
int main() {
  int n, t;
  scanf("%d %d", &n, &t);
  for (int i = 0; i < n; ++i) {
    scanf("%d", a + i);
    ++cnt[a[i]];
    for (int j = 0; j < n; ++j) a[i + j * n] = a[i];
  }
  int oldn = n;
  n = n * min(n + 1, t);
  vector<int> d;
  for (int i = 0; i < min(oldn + 1, t); ++i) {
    for (int j = 0; j < oldn; ++j) {
      auto it = upper_bound(d.begin(), d.end(), a[j]);
      if (it == d.end())
        d.push_back(a[j]);
      else
        *it = a[j];
    }
  }
  printf("%d\n",
         (int)d.size() + *max_element(cnt, cnt + MAX) * max(0, t - oldn - 1));
}
