//用鸽巢原理
#include<iostream>
using namespace std;
int buc[1005];
int main()
{
int N,Q;
while(cin>>N>>Q && !(N==0 && Q==0))
{
int i;
memset(buc,0,sizeof(buc));
while(N--)
{
int num,a;
cin>>num;
for(i=0;i<num;i++)
{
cin>>a;
buc[a]++;
}
}
int max=0,pos;
for(i=0;i<=1000;i++)
if(max<buc[i])
{
max=buc[i];
pos=i;
}
if(max<Q)
cout<<0<<endl;
else
cout<<pos<<endl;
}
return 0;
}