#include <bits/stdc++.h>
#define re register
using namespace std;
typedef long long ll;
ll n ,m,edge[20],arrive[(1<<17)];
//¶ÁÓÅ
inline ll read()
{
re ll x=0;re char ch=getchar();
while(!isdigit(ch)) ch=getchar();
while(isdigit(ch)) x=x*10+ch-'0',ch=getchar();
return x;
}
//ËÑË÷
ll dfs(ll x)
{
cout<<"1: "<<x<<endl;
ll ans=0;
for(ll j=x;j;j=(j-1)&x)
{
if(arrive[j]==(1<<n)-1)
{
cout<<"2: "<<x<<endl;
ans=max(ans,dfs(x^j));
}
}
return ans+1;
}
//ÇåÁã
void Clear()
{
n=m=0;
memset(edge,0,sizeof(edge));
memset(arrive,0,sizeof(arrive));
}
//¶ÁÈë
void Input()
{
n=read();
for(re ll i=0;i<n;i++)
{
m=read();
while(m--)
{
ll a=read();
edge[i]|=(1<<a);
}
}
}
//³õʼ»¯
void Init()
{
for(re ll i=1;i<(1<<n);i++)
for(re ll j=0;j<n;j++)
if(i&(1<<j))
arrive[i]|=edge[j];
}
//Ö÷³ÌÐò
void Play()
{
ll ansp=dfs((1<<n)-1);
printf("%lld\n",ansp);
}
//Ö÷º¯Êý
int main()
{
Clear();
Input();
if(n==0) return 0;
Init();
Play();
main();
}