/*
Name: floyd
Copyright:
Author:
Date: 19/04/12 22:39
Description: 求所有连接1跟2的路径中,最大边权中的最小值
*/
#include <cmath>
#include <cstdio>
#include <iostream>
using namespace std;
const int N = 205;
double dis[N][N];
struct point {
double x;
double y;
}p[N];
double max(double a, double b) {
return a > b ? a : b;
}
double floyd(int n) {
for (int k=0; k<n; ++k) {
for (int i=0; i<n; ++i) {
for (int j=0; j<n; ++j) {
double maxs = max(dis[i][k], dis[k][j]);//递推式变形
if (dis[i][j] > maxs) dis[i][j] = maxs;
}
}
}
return dis[0][1];
}
int main() {
int n, t = 0;
while (scanf("%d", &n), n) {
for (int i=0; i<n; ++i) scanf ("%lf%lf", &p[i].x, &p[i].y);
for (int i=0; i<n; ++i) {
for (int j=0; j<i; ++j) {
if (i == j) dis[i][j] = 0;
else dis[i][j] = dis[j][i] = sqrt((p[i].x-p[j].x)*(p[i].x-p[j].x)+(p[i].y-p[j].y)*(p[i].y-p[j].y));
}
}
double ans = floyd(n);
printf ("Scenario #%d\n", ++t);
printf ("Frog Distance = %.3lf\n\n", ans);
}
return 0;
}