#include <bits/stdc++.h>
#pragma GCC optimize(2)
using namespace std;
template <typename T>
void Read(T &cn) {
  char c;
  int sig = 1;
  while (!isdigit(c = getchar()))
    if (c == '-') sig = -1;
  cn = c - 48;
  while (isdigit(c = getchar())) cn = cn * 10 + c - 48;
  cn *= sig;
}
template <typename T>
void Write(T cn) {
  if (cn < 0) {
    putchar('-');
    cn = 0 - cn;
  }
  int wei = 0;
  T cm = 0;
  int cx = cn % 10;
  cn /= 10;
  while (cn) cm = cm * 10 + cn % 10, cn /= 10, wei++;
  while (wei--) putchar(cm % 10 + 48), cm /= 10;
  putchar(cx + 48);
}
struct dian {
  int x, y;
  void getit() {
    Read(x);
    Read(y);
  }
};
struct xl {
  dian a, b;
  int v;
  double v2;
  void getit() {
    a.getit();
    b.getit();
    Read(v);
    v2 = (double)v / (double)sqrt(b.x * b.x + b.y * b.y);
  }
};
xl a[25000 + 1];
int n;
double ans;
double lin;
double qiu(xl &cn, xl &cm) {
  int dlt1 = cn.b.x * cm.b.y - cm.b.x * cn.b.y;
  if (dlt1 == 0) {
    if ((cn.a.x - cm.a.x) * cn.b.y == (cn.a.y - cm.a.y) * cn.b.x) {
      double ds = sqrt((cn.a.x - cm.a.x) * (cn.a.x - cm.a.x) +
                       (cn.a.y - cm.a.y) * (cn.a.y - cm.a.y));
      if ((cn.b.x + cn.b.y) * (cm.b.x + cm.b.y) > 0) {
        if ((cn.a.x < cm.a.x) ^ (cn.b.x < 0))
          return ds / cn.v;
        else
          return ds / cm.v;
      } else {
        if ((cn.a.x < cm.a.x) ^ (cn.b.x < 0))
          return ds / (cn.v + cm.v);
        else
          return lin;
      }
    } else
      return lin;
  }
  double lmd1 = ((cm.a.x - cn.a.x) * cm.b.y + (cn.a.y - cm.a.y) * cm.b.x) /
                ((double)dlt1);
  double lmd2 = (cn.a.x - cm.a.x + lmd1 * cn.b.x) / (double)cm.b.x;
  if (lmd1 < 0 || lmd2 < 0) return lin;
  return max(lmd1 / cn.v2, lmd2 / cm.v2);
}
int main() {
  lin = 1.0 / 0.0;
  Read(n);
  for (int i = 1; i <= n; i++) a[i].getit();
  ans = lin;
  for (int i = 1; i <= n; i++)
    for (int j = i + 1; j <= n; j++) ans = min(ans, qiu(a[i], a[j]));
  if (ans == lin)
    puts("No show :(");
  else
    printf("%.20lf\n", ans);
  return 0;
}
