rt
#include <iostream>
#include <algorithm>
#include <iomanip>
#include <cmath>
using namespace std;
const double eps=0.00001;
struct pos{
double x;
double y;
}a[10010];
inline double dis(double _x1,double _y1,double _x2,double _y2){
return sqrt((_x2-_x1)*(_x2-_x1)+(_y2-_y1)*(_y2-_y1));
}
inline double min(double a,double b){
return a<b?a:b;
}
bool cmp(pos a,pos b){
if(fabs(a.x-b.x)<=eps){
return a.y>b.y;
}
return a.x>b.x;
}
double ans=1e10;
int n;
int main(void){
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i].x>>a[i].y;
}
sort(a,a+n,cmp);
for(int i=1;i<n;i++){
ans=min(ans,dis(a[i-1].x,a[i-1].y,a[i].x,a[i].y));
}
cout<<fixed<<setprecision(4)<<ans;
}