#include<bits/stdc++.h>
using namespace std;
#define pb push_back
#define MAX 105
int dtime;
set< pair< int,int > > artiPnt;
vector< int > graph[MAX];
int d[MAX],vis[MAX],low[MAX],edge[MAX][MAX];
void artiPoint(int s, int par=-1){
dtime++;
d[s]=low[s]=dtime;
vis[s]=1;
int u=s;
for(int i=0;i<graph[u].size();i++){
int v = graph[u][i];
edge[u][v]++;
if(v==par)
continue;
if(!vis[v]){
artiPoint(v,u);
low[u]=min(low[v],low[u]);
if(d[u]<low[v] && edge[v][u]==1){
artiPnt.insert({min(u,v),max(u,v)});
}
} else{
low[u]=min(low[u],d[v]);
}
}
}
int main(){
int n;
while(cin>>n){
for(int i=0;i<MAX;i++) graph[i].clear();
artiPnt.clear();
for(int i=1;i<=n;i++){
int src;
cin>>src;
getchar();
getchar();
int m; cin>>m;
getchar();
getchar();
//cout<<m;
for(int j=1;j<=m;j++){
int dest;
cin>>dest;
graph[src].pb(dest);
//graph[dest].pb(src);
}
}
memset(vis,0,sizeof vis);
memset(d,0,sizeof d);
memset(low,0,sizeof low);
memset(edge,0,sizeof edge);
dtime=0;
for(int i=0;i<n;i++){
if(!vis[i])
artiPoint(i);
}
cout<<artiPnt.size()<<" critical links\n";
for(auto i = artiPnt.begin();i!=artiPnt.end();i++){
cout<<i->first<<" - "<<i->second<<endl;
}
cout<<endl;
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBNQVggMTA1CgoKaW50IGR0aW1lOwpzZXQ8IHBhaXI8IGludCxpbnQgPiA+IGFydGlQbnQ7CnZlY3RvcjwgaW50ID4gZ3JhcGhbTUFYXTsKaW50IGRbTUFYXSx2aXNbTUFYXSxsb3dbTUFYXSxlZGdlW01BWF1bTUFYXTsKCnZvaWQgYXJ0aVBvaW50KGludCBzLCBpbnQgcGFyPS0xKXsKICAgIGR0aW1lKys7CiAgICBkW3NdPWxvd1tzXT1kdGltZTsKICAgIHZpc1tzXT0xOwogICAgaW50IHU9czsKICAgIGZvcihpbnQgaT0wO2k8Z3JhcGhbdV0uc2l6ZSgpO2krKyl7CiAgICAgICAgaW50IHYgPSBncmFwaFt1XVtpXTsKICAgICAgICBlZGdlW3VdW3ZdKys7CiAgICAgICAgaWYodj09cGFyKQogICAgICAgICAgICBjb250aW51ZTsKCiAgICAgICAgaWYoIXZpc1t2XSl7CiAgICAgICAgICAgIGFydGlQb2ludCh2LHUpOwogICAgICAgICAgICBsb3dbdV09bWluKGxvd1t2XSxsb3dbdV0pOwoKICAgICAgICAgICAgaWYoZFt1XTxsb3dbdl0gJiYgZWRnZVt2XVt1XT09MSl7CiAgICAgICAgICAgICAgICBhcnRpUG50Lmluc2VydCh7bWluKHUsdiksbWF4KHUsdil9KTsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZXsKICAgICAgICAgICAgbG93W3VdPW1pbihsb3dbdV0sZFt2XSk7CiAgICAgICAgfQogICAgfQp9CgoKaW50IG1haW4oKXsKICAgIGludCBuOwogICAgd2hpbGUoY2luPj5uKXsKICAgICAgICBmb3IoaW50IGk9MDtpPE1BWDtpKyspIGdyYXBoW2ldLmNsZWFyKCk7CiAgICAgICAgYXJ0aVBudC5jbGVhcigpOwogICAgICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKXsKICAgICAgICAgICAgaW50IHNyYzsKICAgICAgICAgICAgY2luPj5zcmM7CiAgICAgICAgICAgIGdldGNoYXIoKTsKICAgICAgICAgICAgZ2V0Y2hhcigpOwogICAgICAgICAgICBpbnQgbTsgY2luPj5tOwogICAgICAgICAgICBnZXRjaGFyKCk7CiAgICAgICAgICAgIGdldGNoYXIoKTsKICAgICAgICAgICAgLy9jb3V0PDxtOwogICAgICAgICAgICBmb3IoaW50IGo9MTtqPD1tO2orKyl7CiAgICAgICAgICAgICAgICBpbnQgZGVzdDsKICAgICAgICAgICAgICAgIGNpbj4+ZGVzdDsKICAgICAgICAgICAgICAgIGdyYXBoW3NyY10ucGIoZGVzdCk7CiAgICAgICAgICAgICAgICAvL2dyYXBoW2Rlc3RdLnBiKHNyYyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG1lbXNldCh2aXMsMCxzaXplb2YgdmlzKTsKICAgICAgICBtZW1zZXQoZCwwLHNpemVvZiBkKTsKICAgICAgICBtZW1zZXQobG93LDAsc2l6ZW9mIGxvdyk7CiAgICAgICAgbWVtc2V0KGVkZ2UsMCxzaXplb2YgZWRnZSk7CiAgICAgICAgZHRpbWU9MDsKICAgICAgICBmb3IoaW50IGk9MDtpPG47aSsrKXsKICAgICAgICAgICAgaWYoIXZpc1tpXSkKICAgICAgICAgICAgICAgIGFydGlQb2ludChpKTsKICAgICAgICB9CgogICAgICAgIGNvdXQ8PGFydGlQbnQuc2l6ZSgpPDwiIGNyaXRpY2FsIGxpbmtzXG4iOwogICAgICAgIGZvcihhdXRvIGkgPSBhcnRpUG50LmJlZ2luKCk7aSE9YXJ0aVBudC5lbmQoKTtpKyspewogICAgICAgICAgICBjb3V0PDxpLT5maXJzdDw8IiAtICI8PGktPnNlY29uZDw8ZW5kbDsKICAgICAgICB9CiAgICAgICAgY291dDw8ZW5kbDsKICAgIH0KICAgIHJldHVybiAwOwp9Cg==
MgowICgxKSAxCjEgKDEpIDAKCjIwCjAgKDEpIDEKMSAoNCkgMCAyIDQgNQoyICg0KSAxIDUgNiAxMAozICgxKSA0CjQgKDQpIDEgMyA1IDgKNSAoNikgMSAyIDQgOCA5IDEwCjYgKDMpIDIgMTAgMTMKNyAoMSkgOAo4ICg0KSA0IDUgNyA5CjkgKDMpIDUgOCAxMAoxMCAoNCkgMiA1IDkgNgoxMSAoMykgMTIgMTMgMTcKMTIgKDMpIDExIDE0IDE1CjEzICg1KSA2IDExIDE0IDE3IDE4CjE0ICg0KSAxMiAxMyAxNSAxOAoxNSAoNCkgMTIgMTQgMTYgMTgKMTYgKDEpIDE1CjE3ICgzKSAxMSAxMyAxOQoxOCAoMykgMTMgMTQgMTUKMTkgKDEpIDE3CgoxOQowICgyKSAxIDIKMSAoMikgMCAzCjIgKDIpIDAgMwozICgzKSAxIDIgNAo0ICg2KSA1IDYgMyAxMCA3IDgKNSAoMikgNCA2CjYgKDIpIDUgNAo3ICgzKSA5IDggNAo4ICgyKSA0IDcKOSAoMSkgNwoxMCAoMykgMTEgMTIgNAoxMSAoMikgMTAgMTMKMTIgKDIpIDEwIDEzCjEzICgzKSAxMSAxMiAxNAoxNCAoMykgMTMgMTUgMTYKMTUgKDIpIDE0IDE2CjE2ICg0KSAxNCAxNSAxNyAxOAoxNyAoMikgMTYgMTgKMTggKDIpIDE2IDE3Cgo3CjAgKDMpIDEgMiA0CjEgKDMpIDAgMiAzCjIgKDMpIDEgMCAzCjMgKDQpIDAgMSAyIDQKNCAoMykgMyA2IDUKNSAoMSkgNAo2ICgxKSA0Cg==
2
0 (1) 1
1 (1) 0
20
0 (1) 1
1 (4) 0 2 4 5
2 (4) 1 5 6 10
3 (1) 4
4 (4) 1 3 5 8
5 (6) 1 2 4 8 9 10
6 (3) 2 10 13
7 (1) 8
8 (4) 4 5 7 9
9 (3) 5 8 10
10 (4) 2 5 9 6
11 (3) 12 13 17
12 (3) 11 14 15
13 (5) 6 11 14 17 18
14 (4) 12 13 15 18
15 (4) 12 14 16 18
16 (1) 15
17 (3) 11 13 19
18 (3) 13 14 15
19 (1) 17
19
0 (2) 1 2
1 (2) 0 3
2 (2) 0 3
3 (3) 1 2 4
4 (6) 5 6 3 10 7 8
5 (2) 4 6
6 (2) 5 4
7 (3) 9 8 4
8 (2) 4 7
9 (1) 7
10 (3) 11 12 4
11 (2) 10 13
12 (2) 10 13
13 (3) 11 12 14
14 (3) 13 15 16
15 (2) 14 16
16 (4) 14 15 17 18
17 (2) 16 18
18 (2) 16 17
7
0 (3) 1 2 4
1 (3) 0 2 3
2 (3) 1 0 3
3 (4) 0 1 2 4
4 (3) 3 6 5
5 (1) 4
6 (1) 4