var x:array[1..100,1..100] of 0..1;
    v:array[1..100] of byte;
    n,k,a,b,min:integer;



 function valid (k,x:integer):boolean;
 var i:integer; ok:boolean;
 begin

  ok:=true;

  while (ok) and (i<=k) do
        begin
         if v[i]=x then ok:=false;
         i:=i+1;
        end;

  valid:=ok;
 end;



 procedure citire;
 var p,mm,m,i,j,y,max:integer;
 begin

  readln(n,k);

  readln;

  for i:=1 to n do
      begin

       read(j);

       while not(eoln) do
             begin
              read(y);
              x[j,y]:=1;
             end;

       readln;

      end;

  p:=1; max:=0;

  while p<=k do
        begin

         m:=1;

         v[m]:=p;

         for i:=1 to n do
             if x[p,i]=1 then if valid(p,i) then begin
                                               inc(m);
                                               v[m]:=i;
                                               end;

         if m>max then begin max:=m; mm:=p; end;

         for i:=1 to m do
             v[i]:=0;

         p:=p+1;

        end;

  writeln(mm);
 end;


begin
 citire;
end.