#include<iostream>
#include<stdio.h>
#include<string.h>
#include<sstream>
#define max 200
#define active 1
#define initial 0
#define finished 2
int adj[max][max];
int te[max][max];
int be[max][max];
int cl[max][max];
int status[max];
int dtime[max];
int ftime[max];
int tme,n,cnt;
using namespace std;
void dfs(int v)
{
status[v]=active;
dtime[v]=++tme;
for(int i=0;i<n;i++)
{
if(adj[v][i]==1)
{
if(status[i]==initial)
{
te[v][i]=1;
dfs(i);
}
if(status[i]==active&&te[i][v]!=1)
{
be[v][i]=1;
}
}
}
status[v]=finished;
ftime[v]=++tme;
}
void check_cl()
{
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(adj[i][j]==1)
{
if(dtime[i]<dtime[j])
{
int flag=0;
for(int k=0;k<n;k++)
{
if(dtime[k]>=dtime[j]&&ftime[k]<=ftime[j])
{
for(int l=0;l<n;l++)
{
if(dtime[l]<=dtime[i]&&ftime[l]>=ftime[i])
{
if(be[k][l]==1)
{
flag=1;
}
}
}
}
}
if(!flag)
{
cnt++;
cl[i][j]=1;
}
}
}
}
}
}
int main()
{
int v,e,x;
while(cin>>n)
{
for(int i=0;i<max;i++)
{
status[i]=0;
dtime[i]=0;
ftime[i]=0;
for(int j=0;j<max;j++)
{
adj[i][j]=0;
te[i][j]=0;
be[i][j]=0;
cl[i][j]=0;
}
}
tme=0;cnt=0;
for (int i=0 ; i<n ; i++) {
scanf("%d (%d)",&v,&e);
for (int j=0 ; j<e ; j++) {
scanf("%d",&x);
adj[v][x]=1;
adj[x][v]=1;
}
}
for(int i=0;i<n;i++)
{
if(status[i]==0)
dfs(i);
}
check_cl();
cout<<cnt<<" critical links"<<"\n";
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(cl[i][j]==1)
{
cout<<i<<" - "<<j<<"\n";
}
}
}
cout<<"\n";
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0ZGlvLmg+CiNpbmNsdWRlPHN0cmluZy5oPgojaW5jbHVkZTxzc3RyZWFtPgojZGVmaW5lIG1heCAyMDAKI2RlZmluZSBhY3RpdmUgMQojZGVmaW5lIGluaXRpYWwgMAojZGVmaW5lIGZpbmlzaGVkIDIKaW50IGFkalttYXhdW21heF07CmludCB0ZVttYXhdW21heF07CmludCBiZVttYXhdW21heF07CmludCBjbFttYXhdW21heF07CmludCBzdGF0dXNbbWF4XTsKaW50IGR0aW1lW21heF07CmludCBmdGltZVttYXhdOwppbnQgdG1lLG4sY250Owp1c2luZyBuYW1lc3BhY2Ugc3RkOwp2b2lkIGRmcyhpbnQgdikKewoJc3RhdHVzW3ZdPWFjdGl2ZTsKCWR0aW1lW3ZdPSsrdG1lOwoJZm9yKGludCBpPTA7aTxuO2krKykKCXsKCQlpZihhZGpbdl1baV09PTEpCgkJewoJCQlpZihzdGF0dXNbaV09PWluaXRpYWwpCgkJCXsKCQkJCXRlW3ZdW2ldPTE7CgkJCQlkZnMoaSk7CgkJCX0KCQkJaWYoc3RhdHVzW2ldPT1hY3RpdmUmJnRlW2ldW3ZdIT0xKQoJCQl7CgkJCQliZVt2XVtpXT0xOwoJCQl9CgkJCQoJCX0KCX0KCXN0YXR1c1t2XT1maW5pc2hlZDsKCWZ0aW1lW3ZdPSsrdG1lOwoJCn0Kdm9pZCBjaGVja19jbCgpCnsKCWZvcihpbnQgaT0wO2k8bjtpKyspCgl7CgkJZm9yKGludCBqPTA7ajxuO2orKykKCQl7CgkJCWlmKGFkaltpXVtqXT09MSkKCQkJewoJCQkJaWYoZHRpbWVbaV08ZHRpbWVbal0pCgkJCQl7CgkJCQkJaW50IGZsYWc9MDsKCQkJCQlmb3IoaW50IGs9MDtrPG47aysrKQoJCQkJCXsKCQkJCQkJaWYoZHRpbWVba10+PWR0aW1lW2pdJiZmdGltZVtrXTw9ZnRpbWVbal0pCgkJCQkJCXsKCQkJCQkJCWZvcihpbnQgbD0wO2w8bjtsKyspCgkJCQkJCQl7CgkJCQkJCQkJaWYoZHRpbWVbbF08PWR0aW1lW2ldJiZmdGltZVtsXT49ZnRpbWVbaV0pCgkJCQkJCQkJewoJCQkJCQkJCQlpZihiZVtrXVtsXT09MSkKCQkJCQkJCQkJewoJCQkJCQkJCQkJZmxhZz0xOwoJCQkJCQkJCQl9CgkJCQkJCQkJfQoJCQkJCQkJfQoJCQkJCQkJCgkJCQkJCX0KCQkJCQl9CgkJCQkJaWYoIWZsYWcpCgkJCQkJewoJCQkJCQljbnQrKzsKCQkJCQkJY2xbaV1bal09MTsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9Cgl9Cn0KaW50IG1haW4oKQp7IAogICAgaW50IHYsZSx4OwogICAgd2hpbGUoY2luPj5uKQogICAgewogICAgCWZvcihpbnQgaT0wO2k8bWF4O2krKykKICAgICAgICB7CiAgICAgICAgCXN0YXR1c1tpXT0wOwogICAgICAgIAlkdGltZVtpXT0wOwogICAgICAgIAlmdGltZVtpXT0wOwogICAgICAgIAlmb3IoaW50IGo9MDtqPG1heDtqKyspCiAgICAgICAgCXsKICAgICAgICAJCWFkaltpXVtqXT0wOwogICAgICAgIAkJdGVbaV1bal09MDsKICAgICAgICAJCWJlW2ldW2pdPTA7CiAgICAgICAgCQljbFtpXVtqXT0wOwogICAgICAgIAl9CiAgICAgICAgfQogICAgCXRtZT0wO2NudD0wOwogICAgCWZvciAoaW50IGk9MCA7IGk8biA7IGkrKykgewogICAgICAgICAgICBzY2FuZigiJWQgKCVkKSIsJnYsJmUpOwogICAgICAgICAgICBmb3IgKGludCBqPTAgOyBqPGUgOyBqKyspIHsKICAgICAgICAgICAgICAgIHNjYW5mKCIlZCIsJngpOwogICAgICAgICAgICAgICAgYWRqW3ZdW3hdPTE7CiAgICAgICAgICAgICAgICBhZGpbeF1bdl09MTsKICAgICAgICAgIAogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvcihpbnQgaT0wO2k8bjtpKyspCiAgICAgICAgewogICAgICAgIAlpZihzdGF0dXNbaV09PTApCiAgICAgICAgCSAgIGRmcyhpKTsKICAgICAgICB9CiAgICAgICAgY2hlY2tfY2woKTsKICAgICAgICBjb3V0PDxjbnQ8PCIgY3JpdGljYWwgbGlua3MiPDwiXG4iOwogICAgICAgIGZvcihpbnQgaT0wO2k8bjtpKyspCiAgICAgICAgewogICAgICAgIAlmb3IoaW50IGo9MDtqPG47aisrKQogICAgICAgIAl7CiAgICAgICAgCQlpZihjbFtpXVtqXT09MSkKICAgICAgICAJCXsKICAgICAgICAJCQljb3V0PDxpPDwiIC0gIjw8ajw8IlxuIjsKICAgICAgICAJCX0KICAgICAgICAJfQogICAgICAgIH0KICAgICAgICBjb3V0PDwiXG4iOwogICAgfQogICAgcmV0dXJuIDA7Cn0=