program Project1;
  type pcvor=^cvor ;
    cvor=record
      broj:longint;
      kol:integer;
      sledi:pcvor;
      end;
var
   poc,rad:pcvor;
   i,st:integer;
    a,n,k:longint;
procedure addend(var poc:pcvor;br:longint) ;
          var
            tek,nova:pcvor;
begin
 new(nova);
 nova^.broj:=br;
 nova^.kol:=1;
 nova^.sledi:=nil;
 tek:=poc;
 if poc <> nil then
    begin
        while (tek^.sledi<> nil) and (tek^.broj <> br) do  begin
          tek:=tek^.sledi;
          end;
        if br=tek^.broj then tek^.kol:=tek^.kol+1 else tek^.sledi:=nova;
      end else poc:=nova;
end;
begin
 new(poc);
 poc^.kol:=1;
 poc^.sledi:=nil;
 read(n,k);
 st:=0;
 for i:=1 to n do
     begin
       read(a);
       addend(poc,a);
       end;
 rad:=poc;
 while rad<> nil do begin
        if rad^.kol >= k then begin
            st:=st+1;
     end;
     rad:=rad^.sledi;
   end;
 write(st,' ');
 rad:=poc;
 while rad<> nil do begin
        if rad^.kol >= k then begin
            write(rad^.broj,' ');
     end;
    rad:=rad^.sledi;
   end;
end.