{
TASK:wireless
LANG:Pascal
}
program wireless;

type
	matrix=array[1..4000,1..4000] of integer;

var
	m:matrix;
   n,k,ind:integer;
   a,b,c,t1,t2,i,j:longint;

function max(a,b:longint):longint;
begin
if a>b then max:=a
else max:=b;
end;

procedure solve;
begin
	for i:=1 to 1000000 do
         	for j:=1 to 1000000 do
            	begin
            	if m[i,j]<>0 then t1:=t1+1;
               end;
end;

begin
readln(n,a,b,c);
for i:=1 to n do
	for j:=1 to n do
   	m[i,j]:=0;
for i:=1 to n do
	begin
   read(k);
   for j:=1 to k do
   	begin
      read(t1);
      read(t2);
      m[i,t1]:=t2;
      end;
   readln;
   end;
if m[a,b]<>0 then
	begin
	if m[a,c]<>0 then
   	begin
      writeln(1,' ',max(m[a,b],m[a,c]));
      writeln(a,' ',max(m[a,b],m[a,c]));
      end
	else
   	if m[b,c]<>0 then
      	begin
      	writeln(2,' ',m[a,b]+m[b,c]);
         writeln(a,' ',m[a,b]);
         writeln(b,' ',m[b,c]);
         end
      else
      	solve;
   end
else
	if (m[a,c]<>0)and(m[c,b]<>0) then
		begin
      writeln(2,' ',m[a,c]+m[c,b]);
      writeln(a,' ',m[a,c]);
      writeln(c,' ',m[c,b]);
   	end
   else
   	solve;
end.
	
