const BKRT = "\n";
const SPAC = " ";
const NOSP = "";

function Main(input){
	input = [].concat(...input.split(BKRT).map(a=>a.split(SPAC)));
  const strShift = ()=>input.shift();
  const intShift = ()=>~~input.shift();
  
  var N = intShift();
  var K = intShift();
  
  var A = Array.from({length:200001},(a,b)=>[b,0]);
  for(var i = 0; i < N ; i++){
  	A[intShift()][1]++;
  }
  A = A.sort((a,b)=>b[1]-a[1]).map(a=>a[1]).slice(K);
  if(A.length == 0)return 0;
  return A.reduce((a,b)=>a+b);
}

// If you are interested in the algorithms I used, 
// there is no need to read down from this line.

((b,c,d)=>"undefined"!=typeof require?console.log(Main(require("fs").readFileSync("/dev/stdin","utf8"))):[b=b.split("\n").slice(1,-1).join("\n"),c=function(){try{return Main(b)}catch(f){return f.stack||f.message}}(),d=typeof c,"string"==d||(c=JSON.stringify(c)),$("<form>").append([[10,b],0,[1,d],0,[10,c]].map(f=>$(f?"<textarea>":"<br>",f&&{rows:f[0],cols:40,text:f[1]}))).appendTo("body")])(`
10 10
5 1 3 2 4 1 1 2 3 4
`);