#include <stdio.h>
int a[30][30],e[50],c[50],d,k,n,nr1;
FILE *in,*out;
/*int ver()
{
int i,j,nr=0;
for (i=1;i<=d;i++)
c[i]=0;
for (i=1;i<=n;i++)
{
if (e[i])
{
for (j=1;j<=a[i][0];j++)
c[a[i][j]]=1;
nr++;
}
}
if (nr!=k)
y=0;
for (i=1;i<=d;i++)
if (!c[i])
y=0;
y=1;
} */
void back (int x)
{
int i,j,nr=0,y,nr2=d;
if (x==n+1)
{
for (i=1;i<=d;i++)
c[i]=0;
for (i=1;i<=n;i++)
{
if (e[i])
{
for (j=1;j<=a[i][0];j++)
if (!c[a[i][j]])
{
c[a[i][j]]=1;
nr2--;
}
nr++;
}
}
if (nr==k&&nr2==0)
y=1;
else
y=0;
if (y)
{
for (i=1;i<=n;i++)
if (e[i])
fprintf(out,"%d ",i);
fprintf(out,"\n");
}
}
else
{
if (k-nr1==n-x+1)
{
for (i=x;i<=n;i++)
e[i]=1;
back(n+1);
return;
}
if(nr1==k)
{
for (i=x;i<=n;i++)
e[i]=0;
back(n+1);
return ;
}
if (nr1!=k)
{
e[x]=1;
nr1++;
back(x+1);
nr1--;
}
e[x]=0;
if (k-nr1!=n-x+1)
back(x+1);
}
}
int main()
{
int i,j;
in=fopen("pluricex.in","r");
out=fopen("pluricex.out","w");
fscanf(in,"%d%d%d",&n,&k,&d);
for (i=1;i<=n;i++)
{
fscanf(in,"%d",&a[i][0]);
for (j=1;j<=a[i][0];j++)
{
fscanf(in,"%d",&a[i][j]);
}
}
back(1);
fclose(in);
fclose(out);
return 0;
}
/*#include <stdio.h>
int a[30][30],e[50],c[50],d,k,n,nr1;
FILE *in,*out;
int ver()
{
int i,j,nr=0;
for (i=1;i<=d;i++)
c[i]=0;
for (i=1;i<=n;i++)
{
if (e[i])
{
for (j=1;j<=a[i][0];j++)
c[a[i][j]]=1;
nr++;
}
}
if (nr!=k)
y=0;
for (i=1;i<=d;i++)
if (!c[i])
y=0;
y=1;
}
void back (int x)
{
int i,j,nr=0,y,nr2=d;
if (x==n+1)
{
for (i=1;i<=d;i++)
c[i]=0;
for (i=1;i<=n;i++)
{
if (e[i])
{
for (j=1;j<=a[i][0];j++)
if (!c[a[i][j]])
{
c[a[i][j]]=1;
nr2--;
}
nr++;
}
}
if (nr==k&&nr2==0)
y=1;
else
y=0;
if (y)
{
for (i=1;i<=n;i++)
if (e[i])
fprintf(out,"%d ",i);
fprintf(out,"\n");
}
}
else
{
if (k-nr1==n-x+1)
{
for (i=x;i<=n;i++)
e[i]=1;
back(n+1);
return;
}
if(nr1==k)
{
for (i=x;i<=n;i++)
e[i]=0;
back(n+1);
return ;
}
if (nr1!=k)
{
e[x]=1;
nr1++;
back(x+1);
nr1--;
}
e[x]=0;
if (k-nr1!=n-x+1)
back(x+1);
}
}
int main()
{
int i,j;
in=fopen("pluricex.in","r");
out=fopen("pluricex.out","w");
fscanf(in,"%d%d%d",&n,&k,&d);
for (i=1;i<=n;i++)
{
fscanf(in,"%d",&a[i][0]);
for (j=1;j<=a[i][0];j++)
{
fscanf(in,"%d",&a[i][j]);
}
}
back(1);
fclose(in);
fclose(out);
return 0;
} */