#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define max(p,q)((p)>(q)?(p):(q))
#define zahyoutype double
typedef struct Point{zahyoutype x,y;}P;
double distPP(P p,P q){return hypot(p.x-q.x,p.y-q.y);}
void readpoint(P*p){zahyoutype x=1;scanf(x/2?"%lf%lf":"%ld%ld",&p->x,&p->y);}

P a[80010];
int main(){
	int n;
	scanf("%d",&n);
	for(int i=0;i<n;i++)readpoint(a+i);
	double ans=0;
	int r=0;
	for(int i=0;i<n;i++){
		double crr=distPP(a[i],a[r]);
		while(distPP(a[i],a[(r+1)%n])>crr){
			r=(r+1)%n;
			crr=distPP(a[i],a[r]);
		}
		ans=max(ans,crr);
	}
	printf("%.9f\n",ans);
}
