const fi='BL1.INP';
fo='BL1.OUT';
var f,g:text;
i,min,n,k,so,j,tg:longint;
a:array[0..1000000]of longint;
begin
assign(f,fi); reset(f);
assign(g,fo); rewrite(g);
i:=1;
while not eof(f) do begin
read(f,a[i]);
inc(i);
end;
n:=i-1;
for i:=2 to n do
for j:=n downto i do
if a[j]<a[j-1] then begin
tg:=a[j]; a[j]:=a[j-1]; a[j-1]:=tg;
end;
min:=a[2]-a[1]; so:=a[1]; i:=2; j:=0;
while i<n do begin
k:=abs(a[i+1]-a[i]);
if k<min then min:=k;
if k>min then begin
so:=a[i];
j:=1;
end;
i:=i+1;
end;
if j=1 then write(g,so+min)
else write(g,a[n]+min);
close(f); close(g);
end.