using System;
using static System.Console;
using System.Linq;
using System.Collections.Generic;
class Program
{
    static int NN => int.Parse(ReadLine());
    static int[] NList => ReadLine().Split().Select(int.Parse).ToArray();
    public static void Main()
    {
        Solve();
    }
    static void Solve()
    {
        var c = NList;
        var (n, k) = (c[0], c[1]);
        var a = NList;
        var dic = new Dictionary<int, int>();
        foreach (var ai in a)
        {
            if (dic.ContainsKey(ai)) ++dic[ai];
            else dic[ai] = 1;
        }
        var list = new List<int>();
        foreach (var kv in dic) list.Add(kv.Value);
        list.Sort((l, r) => r.CompareTo(l));
        var ans = 0;
        foreach (var li in list)
        {
            if (k > 0)
            {
                ++ans;
                k -= li;
            }
        }
        WriteLine(ans);
    }
}