N, K = list(map(int, input().split()))

A = list(map(int, input().split()))



# N=O(10^5)なので、O(N)で解く

# ABC-155-C-Poll の類題



# 各数字の出現回数を数える

dic = {}

for i in range(N):

  a = A[i]

  if a not in dic: dic[a] = 1

  else: dic[a] += 1



# dicを昇順にソート

dic = sorted(list(dic.items()), key=lambda x:x[1])



# dicは [(5, 1), (3, 2), (2, 2), (4, 2), (1, 3)] のようになっている

# dicのvalueにおいて、前からlen(dic)-K個の和を取る

ans = 0

for i in range(max(len(dic)-K, 0)):

  ans += dic[i][1]

  

print(ans)
from collections import Counter



N, K = list(map(int, input().split()))

A = list(map(int, input().split()))



# N=O(10^5)なので、O(N)で解く

# ABC-155-C-Poll の類題

# 方針：各数字の出現回数を数える



# Counter(リスト) は辞書型のサブクラスであり、キーに要素・値に出現回数という形式

# Counter(リスト).most_common() は(要素, 出現回数)というタプルを出現回数順に並べたリスト

A = Counter(A).most_common()



# 出現回数の大きい方からK個はそのままにしておく(=変えない個数）

# 変える個数は、N-(変えない個数)

s = 0

for i in range(min(K, len(A))):

  s += A[i][1]

  

print((N-s))
N, K = list(map(int, input().split()))
A = list(map(int, input().split()))
# N=O(10^5)なので、O(N)で解く
# ABC-155-C-Poll の類題
# 各数字の出現回数を数える
dic = {}
for i in range(N):
    a = A[i]
    if a not in dic:
        dic[a] = 1
    else:
        dic[a] += 1
# dicを昇順にソート
dic = sorted(list(dic.items()), key=lambda x: x[1])
# dicは [(5, 1), (3, 2), (2, 2), (4, 2), (1, 3)] のようになっている
# dicのvalueにおいて、前からlen(dic)-K個の和を取る
ans = 0
for i in range(max(len(dic) - K, 0)):
    ans += dic[i][1]
print(ans)

from collections import Counter

N, K = list(map(int, input().split()))
A = list(map(int, input().split()))
# N=O(10^5)なので、O(N)で解く
# ABC-155-C-Poll の類題
# 方針：各数字の出現回数を数える
# Counter(リスト) は辞書型のサブクラスであり、キーに要素・値に出現回数という形式
# Counter(リスト).most_common() は(要素, 出現回数)というタプルを出現回数順に並べたリスト
A = Counter(A).most_common()
# 出現回数の大きい方からK個はそのままにしておく(=変えない個数）
# 変える個数は、N-(変えない個数)
s = 0
for i in range(min(K, len(A))):
    s += A[i][1]
print((N - s))

+from collections import Counter + -# 各数字の出現回数を数える -dic = {} -for i in range(N): -    a = A[i] -    if a not in dic: -        dic[a] = 1 -    else: -        dic[a] += 1 -# dicを昇順にソート -dic = sorted(list(dic.items()), key=lambda x: x[1]) -# dicは [(5, 1), (3, 2), (2, 2), (4, 2), (1, 3)] のようになっている -# dicのvalueにおいて、前からlen(dic)-K個の和を取る -ans = 0 -for i in range(max(len(dic) - K, 0)): -    ans += dic[i][1] -print(ans) +# 方針：各数字の出現回数を数える +# Counter(リスト) は辞書型のサブクラスであり、キーに要素・値に出現回数という形式 +# Counter(リスト).most_common() は(要素, 出現回数)というタプルを出現回数順に並べたリスト +A = Counter(A).most_common() +# 出現回数の大きい方からK個はそのままにしておく(=変えない個数） +# 変える個数は、N-(変えない個数) +s = 0 +for i in range(min(K, len(A))): +    s += A[i][1] +print((N - s))