program subjects;
const
MAXN = 100000;
MAXM = 1000;
var
M, N, P, i, j, h: LongInt;
K : Array[0..MAXN-1] of LongInt;
S : Array[0..MAXN-1] of Array[0..5] of LongInt;
ans : Array[1..MAXM] of Array[1..2] of LongInt;
coppie : Array[1..MAXM,1..MAXM] of LongInt;
begin
(*assign(input, 'input.txt'); reset(input);
assign(output, 'output.txt'); rewrite(output);*)
ReadLn(N, M);
for i := 0 to N - 1 do
begin
Read(K[i]);
for j := 0 to K[i] - 1 do
Read(S[i][j]);
end;
for i:=1 to M do
for j:=1 to M do coppie[i,j]:=0;
P:=0;
for i:=0 to N-1 do
begin
if K[i]>=1 then
begin
for j:=0 to K[i]-1 do
for h:= j+1 to K[i]-1 do
begin
coppie[S[i][j],S[i][h]]:=coppie[S[i][j],S[i][h]]+1;
coppie[S[i][h],S[i][j]]:=coppie[S[i][h],S[i][j]]+1;
end;
end;
end;
for i:=1 to M do
for j:= 1 to M do
if (coppie[i,j]=0) and (i<j) then
begin
P:=P+1;
ans[P][1]:=i; ans[P][2]:=j;
end;
WriteLn(P);
for i := 1 to P do
begin
for j := 1 to 2 do
Write(ans[i][j], ' ');
WriteLn();
end;
end.
cHJvZ3JhbSBzdWJqZWN0czsKCmNvbnN0CiAgICBNQVhOID0gMTAwMDAwOwogICAgTUFYTSA9IDEwMDA7Cgp2YXIKICAgIE0sIE4sIFAsIGksIGosIGg6IExvbmdJbnQ7CiAgICBLICAgICAgICAgICAgIDogQXJyYXlbMC4uTUFYTi0xXSBvZiBMb25nSW50OwogICAgUyAgICAgICAgICAgICA6IEFycmF5WzAuLk1BWE4tMV0gb2YgQXJyYXlbMC4uNV0gb2YgTG9uZ0ludDsKICAgIGFucyAgICAgICAgICAgOiBBcnJheVsxLi5NQVhNXSBvZiBBcnJheVsxLi4yXSBvZiBMb25nSW50OwogICAgY29wcGllICAgICAgICA6IEFycmF5WzEuLk1BWE0sMS4uTUFYTV0gb2YgTG9uZ0ludDsKICAgIAogICAgCmJlZ2luCiAgICAoKmFzc2lnbihpbnB1dCwgICdpbnB1dC50eHQnKTsgIHJlc2V0KGlucHV0KTsKICAgIGFzc2lnbihvdXRwdXQsICdvdXRwdXQudHh0Jyk7IHJld3JpdGUob3V0cHV0KTsqKQoKICAgIFJlYWRMbihOLCBNKTsKCiAgICBmb3IgaSA6PSAwIHRvIE4gLSAxIGRvIAogICAgYmVnaW4gICAgICAgIAogICAgICAgIFJlYWQoS1tpXSk7CiAgICAgICAgZm9yIGogOj0gMCB0byBLW2ldIC0gMSBkbwogICAgICAgICAgICBSZWFkKFNbaV1bal0pOwogICAgZW5kOwogICAgZm9yIGk6PTEgdG8gTSBkbwogICAgICAgICAgZm9yIGo6PTEgdG8gTSBkbyBjb3BwaWVbaSxqXTo9MDsKICAgIFA6PTA7ICAgICAgCiAgICBmb3IgaTo9MCB0byBOLTEgZG8KICAgICAgICAgYmVnaW4KICAgICAgICAgICAgaWYgS1tpXT49MSB0aGVuIAogICAgICAgICAgICAgIGJlZ2luIAogICAgICAgICAgICAgICAgIGZvciBqOj0wIHRvIEtbaV0tMSBkbyAKICAgICAgICAgICAgICAgICAgICBmb3IgaDo9IGorMSB0byBLW2ldLTEgZG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHBpZVtTW2ldW2pdLFNbaV1baF1dOj1jb3BwaWVbU1tpXVtqXSxTW2ldW2hdXSsxOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHBpZVtTW2ldW2hdLFNbaV1bal1dOj1jb3BwaWVbU1tpXVtoXSxTW2ldW2pdXSsxOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kOyAgCiAgICAgICAgICAgICBlbmQ7CiAgICAgICAgIGVuZDsgCiAgICAgIAogICBmb3IgaTo9MSB0byBNIGRvCiAgICAgICBmb3Igajo9IDEgdG8gIE0gZG8KICAgICAgICAgICAgaWYgKGNvcHBpZVtpLGpdPTApIGFuZCAoaTxqKSB0aGVuIAogICAgICAgICAgICAgICAgICAgICAgYmVnaW4gIAogICAgICAgICAgICAgICAgICAgICAgICBQOj1QKzE7CiAgICAgICAgICAgICAgICAgICAgICAgIGFuc1tQXVsxXTo9aTsgYW5zW1BdWzJdOj1qOwogICAgICAgICAgICAgICAgICAgICAgZW5kOyAgCiAgICAgICAgCiAgICBXcml0ZUxuKFApOwogICAgZm9yIGkgOj0gMSB0byBQIGRvIAogICAgYmVnaW4KICAgICAgICBmb3IgaiA6PSAxIHRvIDIgZG8KICAgICAgICAgICAgV3JpdGUoYW5zW2ldW2pdLCAnICcpOwogICAgICAgIFdyaXRlTG4oKTsKICAgIGVuZDsKCmVuZC4=