program p2;
type niz=array[1..100] of string;
var a,b,c:niz;
na,nb,nc:integer;
procedure UnosNiza(var a:niz ; var n:integer);
var x:string;
begin
  readln(x);
  n:=0;
  while (x<>'0') do
  begin
    n:=n+1;
    a[n]:=x;
    readln(x);
  end;
end;
procedure IspisNiza(a:niz; n:integer);
var i:integer;
begin
  writeln(n);
  for i:=1 to n do
    writeln(a[i]);
end;
Procedure Promesaj(a,b:niz; var c:niz; na,nb:integer;var nc:integer);
var ia,ib,k:integer;
begin
  ia:=1;ib:=1;k:=0;
  while(ia<=na) and (ib<=nb) do
  begin
    k:=k+1;
    c[k]:=a[ia];
    k:=k+1;
    c[k]:=b[ib];
    ia:=ia+1;
    ib:=ib+1;
  end;
  while(ia<=na) do
  begin
    k:=k+1;
    c[k]:=a[ia];
  end;
  
  while(ib<=nb) do
  begin
    k:=k+1;
    c[k]:=b[ib];
  end; 
  nc:=k;
end;
begin
  UnosNiza(a,na);
  UnosNiza(b,nb);
  Promesaj(a,b,c,na,nb,nc);
  IspisNiza(c,nc);
end.