code 31200;
procedure LNG INT ADD(U,V,SUM); integer array U,V,SUM;
begin integer LU,LV,DIFF,CARRY,I,T,MAX;
   LU:=U[0]; LV:=V[0];
   if LU >= LV then 
   begin MAX:=LU; DIFF:=LU - LV + 1; CARRY:=0;
      for I:=LU step -1 until DIFF do 
      begin T:=U[I] + V[I-DIFF+1] + CARRY;
         CARRY:=if T<10 000 000 then 0 else 1;
         SUM[I]:=T - CARRY * 10 000 000
      end;
      for I:=DIFF - 1 step -1 until 1 do 
      begin T:=U[I] + CARRY;
         CARRY:=if T<10 000 000 then 0 else 1;
         SUM[I]:=T - CARRY * 10 000 000
      end 
   end else 
   begin MAX:=LV; DIFF:=LV - LU + 1; CARRY:=0;
      for I:=LV step -1 until DIFF do 
      begin T:=V[I] + U[I-DIFF+1] + CARRY;
         CARRY:=if T<10 000 000 then 0 else 1;
         SUM[I]:=T - CARRY * 10 000 000
      end;
      for I:=DIFF - 1 step -1 until 1 do 
      begin T:=V[I] + CARRY;
         CARRY:=if T<10 000 000 then 0 else 1;
         SUM[I]:=T - CARRY * 10 000 000
      end 
   end;
   if CARRY=1 then 
   begin for I:=MAX step -1 until 1 do 
      SUM[I+1]:=SUM[I]; SUM[1]:=1; MAX:=MAX + 1
   end;
   SUM[0]:=MAX
end LNG INT ADD

        eop