program p1;
type niz=array[1..50] of integer;
var a:niz; n, poz1, poz2:integer; 

function razliciteCifre(x:integer):boolean;
var ind:boolean; i,j,n:integer; a:niz;
begin

i:=0;
while x>0 do
begin
  i:=i+1;
  a[i]:=x mod 10;
  x:= x div 10;
end;

n:=i;

ind:=true;
for i:=1 to n do
  for j:=i+1 to n do
    if a[i]=a[j] then
    begin
     ind:=false;
     break;
    end;

razliciteCifre:=ind;
end;

procedure unosNiza(var a:niz; var n:integer);
var x:integer;
begin
  readln(x);
  n:=0;
  while(x<>0) do
  begin
    if (razliciteCifre(x)) then
     begin
      n:=n+1;
      a[n]:=x;
     end;
     readln(x);
  end;
end;

Procedure ispisNiza(a:niz; n:integer);
var i:integer;
begin
  writeln(n);
  for i:=1 to n do
    write(a[i]:10);
    
  writeln;
end;

Procedure napraviNiz(var a:niz; var n:integer);
var x,i,j,n1:integer;
begin
  i:=0;
  n1:=n;
  while i<n1 do
  begin
    readln(x);
    if not(razliciteCifre(x)) then
    begin
      i:=i+1;
      for j:=n downto 2*i do
        a[j+1]:=a[j];
        
      a[2*i]:=x;
      n:=n+1;
    end;
  end;

end;

procedure Najblizi(a:niz; n:integer; var p1,p2:integer);
var i,j,d:integer;
begin
p1:=1;
p2:=2;
d:=abs(a[p1]-a[p2]);

for i:=1 to n-1   do
begin
 for j:=i+1 to n do
 begin
  if abs(a[i]-a[j])<d then
  begin
  d:=abs(a[i]-a[j]);
  p1:=i;
  p2:=j;
  end;
 end;
end;
end;
  


begin 
  unosNiza(a,n);
  ispisNiza(a,n);
  
  napraviNiz(a,n);
  ispisNiza(a,n);
  
  Najblizi(a,n,poz1,poz2);
  writeln(poz1:5,poz2:5);
end.