#include <bits/stdc++.h>
using namespace std;
int n, t;
int a[105];
long long int lis[105][105];
long long int ans[105][105];
long long int r[105][105];
void mul(long long int a[][105], long long int b[][105],
         long long int c[][105]) {
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < n; ++j) {
      c[i][j] = INT_MIN;
      for (int k = 0; k < n; ++k) {
        c[i][j] = max(c[i][j], a[i][k] + b[k][j]);
      }
    }
  }
}
void expPow(int b) {
  while (b) {
    if (b % 2 == 1) {
      mul(ans, lis, r);
      for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
          ans[i][j] = r[i][j];
        }
      }
    }
    mul(lis, lis, r);
    for (int i = 0; i < n; ++i) {
      for (int j = 0; j < n; ++j) {
        lis[i][j] = r[i][j];
      }
    }
    b /= 2;
  }
}
int main() {
  scanf("%d%d", &n, &t);
  for (int i = 0; i < n; ++i) {
    scanf("%d", &a[i]);
  }
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < n; ++j) {
      if (a[i] > a[j])
        lis[i][j] = INT_MIN;
      else {
        lis[i][j] = 1;
        for (int k = 0; k < j; ++k) {
          if (a[k] <= a[j]) lis[i][j] = max(lis[i][j], 1 + lis[i][k]);
        }
      }
    }
  }
  expPow(t);
  long long int maxLis = 0;
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < n; ++j) {
      maxLis = max(maxLis, ans[i][j]);
    }
  }
  cout << maxLis << endl;
  return 0;
}
