#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll FFF=10000+5;
const ll inf=0x7fffffff;
ll n;
ll ans=inf;//定义+设置初始值
struct node
{
ll x,y;
} pt[FFF]; //pt点 ,x、y是这个点的横纵坐标
//dis2函数求两点的距离平方和
ll dis2(ll x1,ll x2,ll y1,ll y2)//勾股定理(P.S. 可以用的技巧,这里可以不用直接开方,直接比较距离的平方,最后输出的时候再开方)
{
return (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);
}
int main()
{
//freopen("test1.in","r",stdin);
//freopen("test1.debug","w",stdout);
scanf("%lld",&n);
for(int i=1; i<=n; ++i)
scanf("%lld %lld",&pt[i].x,&pt[i].y);
for(int i=1; i<=n; ++i)
{
for(int j=i+1; j<=n; ++j)
{
ans=min(dis2(pt[i].x,pt[j].x,pt[i].y,pt[j].y),ans);//暴力枚举并维护
//printf("%lld %lld\n",ans,dis2(pt[i].x,pt[j].x,pt[i].y,pt[j].y));
}
}
printf("%0.4lf",(double)sqrt(ans));
return 0;
}