var v:array [1..2, 1..100000] of longint;
buf1, buf2:array [1.. 1 shl 17] of char;
i, j, n:longint;
c, min:extended;
f, g:text;
begin
assign (f, 'cmap.in'); settextbuf (f, buf1); reset (f);
assign (g, 'cmap.out'); settextbuf (g, buf2); rewrite (g);
readln (f, n);
for i := 1 to n do
begin
readln (f, v[1, i], v[2, i]);
end;
min:=sqrt((v[1, 1]-v[1, 2])*(v[1, 1]-v[1, 2])+(v[2, 1]-v[2, 2])*(v[2, 1]-v[2, 2]));
for i := 1 to n-1 do
begin
for j := i+1 to n do
begin
c:=sqrt((v[1, i]-v[1, j])*(v[1, i]-v[1, j])+(v[2, i]-v[2, j])*(v[2, i]-v[2, j]));
if c<min then min:=c;
end;
end;
writeln (g, min:1:6);
close (f); close (g);
end.