#include <cstdlib>
#include <iostream>

using namespace std;

struct competitor
{
       int count;
       int themes[32];
       };

struct themesx
{
       int x;
       int index;
       };
       
competitor cmps[16];
int n,k;
int themes[32];
themesx asd[16];


/*int sort()
{
    competitor temp;
    int i,j;
    for(i=0;i<n;i++){
                     for(j=i;j<n;j++) 
                     if(cmps[i].count<cmps[j].count){
                                                     //swap(cmps[i].count,cmps[j].count);
                                                     temp=cmps[i]; 
                                                     cmps[i]=cmps[j];
                                                     cmps[j]=temp;
                                                     }
                     }
}*/

int check()
{
    for(int i=0;i<k;i++) if(themes[i]==0) return 0;
    return 1;
}

int sort1()
{
    
    int i,j;
    for(i=0;i<n;i++){
                     for(j=i;j<n;j++) 
                     if(asd[i].x<asd[j].x){
                                           swap(asd[i].x,asd[j].x);
                                           swap(asd[i].index,asd[j].index);
                                           }
                     }
}

int sort2()
{
    
    int i,j;
    for(i=0;i<n;i++){
                     for(j=i;j<n;j++) 
                     if(asd[i].x==asd[j].x){
                                            if(asd[i].index>asd[j].index) swap(asd[i].index,asd[j].index);
                                           }
                     else break;
                     }
}

int main()
{
    int i,j,x=0,as=0,ins=1,holy=0;
    int answers[32];
    cin>>n>>k;
    for(i=0;i<n;i++){
                     cin>>cmps[i].count;
                     holy=0;
                     for(j=0;j<cmps[i].count;j++){ cin>>cmps[i].themes[j]; if(themes[cmps[i].themes[j]]==0) holy++;}
                     asd[i].x=holy;
                     asd[i].index=i;
                     }
    sort1();
    sort2();
    for(i=0;i<n;i++){
                     x=asd[i].index;
                     for(j=0;j<cmps[x].count;j++){ 
                                                   if(themes[cmps[x].themes[j]]==1){ ins=0; break; }
                                                   else themes[cmps[x].themes[j]]=1;}
                     if(ins==1){ answers[as]=x; as++; }
                     ins=1;
                     if(check()==1) break;
                     }
    cout<<as<<endl;        
    sort(answers,answers+as);         
    for(i=0;i<as;i++){
                      if(i==0) cout<<answers[i]+1; 
                      else cout<<" "<<answers[i]+1;
                      }
    cout<<endl;
    //main();
    return 0;
}
