You are given an array of positive integers a1, a2, ..., an × T of length n × T. We know that for any i > n it is true that ai = ai - n. Find the length of the longest non-decreasing sequence of the given array.

Input

The first line contains two space-separated integers: n, T (1 ≤ n ≤ 100, 1 ≤ T ≤ 107). The second line contains n space-separated integers a1, a2, ..., an (1 ≤ ai ≤ 300).

Output

Print a single number — the length of a sought sequence.

Examples

Input

4 3
3 1 4 2


Output

5

Note

The array given in the sample looks like that: 3, 1, 4, 2, 3, 1, 4, 2, 3, 1, 4, 2. The elements in bold form the largest non-decreasing subsequence. 

import java.util.Scanner;

public class OnceAgain {

    public static final int MAX = 300;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int T = sc.nextInt();
        int[] a = getArr(sc, n);
        int[] d = new int[MAX + 1];
        int maxIndex = Math.min(n * n, T * n);
//        int maxIndex =  T * n;
        for (int i = 0; i < maxIndex; i++) {
            int index = i % n;
            int ai = a[index];
            int maxSeq = 0;
            for (int j = 0; j <= ai; j++) {
                maxSeq = Math.max(maxSeq, d[j]);
            }
            d[ai] = maxSeq + 1;
        }

        int res = 0;
        for (int aD : d) {
            res = Math.max(res, aD);
        }

        if (maxIndex == T * n) {
            System.out.println(res);
        } else {
            int maxStatic = 0;
            int[] cnt = new int[MAX + 1];
            for (int i = 0; i < a.length; i++) {
                cnt[a[i]]++;
            }
            for (int i = 0; i < cnt.length; i++) {
                maxStatic = Math.max(maxStatic, cnt[i]);
            }
            res += (T - n) * maxStatic;
            System.out.println(res);
        }
    }

    private static int[] getArr(Scanner sc, int n) {
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = sc.nextInt();
        }
        return a;
    }
}
