#include <bits/stdc++.h>
using namespace std;
namespace io {
const int __SIZE = (1 << 21) + 1;
char ibuf[__SIZE], *iS, *iT, obuf[__SIZE], *oS = obuf, *oT = oS + __SIZE - 1,
                                           __c, qu[55];
int __f, qr, _eof;
inline void flush() { fwrite(obuf, 1, oS - obuf, stdout), oS = obuf; }
inline void gc(char &x) {
  x = (iS == iT ? (iT = (iS = ibuf) + fread(ibuf, 1, __SIZE, stdin),
                   (iS == iT ? EOF : *iS++))
                : *iS++);
}
inline void pc(char x) {
  *oS++ = x;
  if (oS == oT) flush();
}
inline void pstr(const char *s) {
  int __len = strlen(s);
  for (__f = 0; __f < __len; ++__f) pc(s[__f]);
}
inline void gstr(char *s) {
  for (__c = (iS == iT ? (iT = (iS = ibuf) + fread(ibuf, 1, __SIZE, stdin),
                         (iS == iT ? EOF : *iS++))
                       : *iS++);
       __c < 32 || __c > 126 || __c == ' ';)
    __c = (iS == iT ? (iT = (iS = ibuf) + fread(ibuf, 1, __SIZE, stdin),
                       (iS == iT ? EOF : *iS++))
                    : *iS++);
  for (; __c > 31 && __c < 127 && __c != ' ';
       ++s, __c = (iS == iT ? (iT = (iS = ibuf) + fread(ibuf, 1, __SIZE, stdin),
                              (iS == iT ? EOF : *iS++))
                            : *iS++))
    *s = __c;
  *s = 0;
}
template <class I>
inline bool gi(I &x) {
  _eof = 0;
  for (__f = 1,
      __c = (iS == iT ? (iT = (iS = ibuf) + fread(ibuf, 1, __SIZE, stdin),
                        (iS == iT ? EOF : *iS++))
                      : *iS++);
       (__c < '0' || __c > '9') && !_eof;
       __c = (iS == iT ? (iT = (iS = ibuf) + fread(ibuf, 1, __SIZE, stdin),
                         (iS == iT ? EOF : *iS++))
                       : *iS++)) {
    if (__c == '-') __f = -1;
    _eof |= __c == EOF;
  }
  for (x = 0; __c <= '9' && __c >= '0' && !_eof;
       __c = (iS == iT ? (iT = (iS = ibuf) + fread(ibuf, 1, __SIZE, stdin),
                         (iS == iT ? EOF : *iS++))
                       : *iS++))
    x = x * 10 + (__c & 15), _eof |= __c == EOF;
  x *= __f;
  return !_eof;
}
template <class I>
inline void gp(I x) {
  if (!x) pc('0');
  if (x < 0) pc('-'), x = -x;
  while (x) qu[++qr] = x % 10 + '0', x /= 10;
  while (qr) pc(qu[qr--]);
}
struct Flusher_ {
  ~Flusher_() { flush(); }
} io_flusher_;
}  // namespace io
using io::gc;
using io::gi;
using io::gp;
using io::gstr;
using io::pc;
using io::pstr;
void scan() { return; }
template <class T, typename... Args>
void scan(T &a, Args &&...args) {
  gi(a);
  scan(args...);
  return;
}
template <typename T>
void scann(T a, T b) {
  for (auto it = a; it != b; ++it) scan(*it);
}
template <typename T>
void scerr(T a, T b) {
  for (auto it = a; it != b; ++it) cerr << *it << " ";
  cerr << '\n';
}
void print() { return; }
template <class T, typename... Args>
void print(T a, Args... args) {
  gp(a);
  pc(' ');
  print(args...);
  return;
}
void cer() { return; }
template <class T, typename... Args>
void cer(T a, Args... args) {
  cerr << " " << a;
  cer(args...);
  return;
}
const int N = 5e5 + 2;
const int M = 4e6 + 2;
const int mod = 998244353;
const long long inf = 1e15;
const long long INF = 2e18;
void data() {}
int n, f = 0;
double x[N], y[N], dx[N], dy[N], s[N], t = 100.0 * LONG_LONG_MAX + 0.0;
int main() {
  data();
  scan(n);
  for (int i = 1; i <= n; ++i) scan(x[i], y[i], dx[i], dy[i], s[i]);
  for (int i = 1; i <= n; ++i) {
    for (int j = i + 1; j <= n; ++j) {
      double k1 = dy[i] / dx[i], b1 = y[i] + (0.0 - x[i]) * k1,
             k2 = dy[j] / dx[j], b2 = y[j] + (0.0 - x[j]) * k2;
      if (k1 == k2 && b1 != b2) continue;
      if (k1 == k2 && b1 == b2) {
        if ((dx[i] > 0 && dx[j] < 0 && x[i] < x[j]) ||
            (dx[i] < 0 && dx[j] > 0 && x[i] > x[j])) {
          f = 1;
          t = min(t, ((x[j] - x[i]) * (x[j] - x[i]) +
                      (y[j] - y[i]) * (y[j] - y[i])) /
                         ((s[i] + s[j]) * (s[i] + s[j])));
        } else if ((dx[i] > 0 && dx[j] < 0 && x[i] > x[j]) ||
                   (dx[i] < 0 && dx[j] > 0 && x[i] < x[j])) {
          continue;
        } else {
          if ((dx[i] > 0 && x[i] < x[j]) || (dx[i] < 0 && x[i] > x[j])) {
            f = 1;
            t = min(t, ((x[j] - x[i]) * (x[j] - x[i]) +
                        (y[j] - y[i]) * (y[j] - y[i])) /
                           (s[i] * s[i]));
          }
          if ((dx[j] > 0 && x[j] < x[i]) || (dx[j] < 0 && x[j] > x[i])) {
            f = 1;
            t = min(t, ((x[j] - x[i]) * (x[j] - x[i]) +
                        (y[j] - y[i]) * (y[j] - y[i])) /
                           (s[j] * s[j]));
          }
        }
        continue;
      }
      double ix = (b2 - b1) / (k1 - k2), iy = k1 * ix + b1;
      if (ix > x[i] && dx[i] < 0) continue;
      if (ix < x[i] && dx[i] > 0) continue;
      if (ix < x[j] && dx[j] > 0) continue;
      if (ix > x[j] && dx[j] < 0) continue;
      if (iy > y[i] && dy[i] < 0) continue;
      if (iy < y[i] && dy[i] > 0) continue;
      if (iy < y[j] && dy[j] > 0) continue;
      if (iy > y[j] && dy[j] < 0) continue;
      f = 1;
      t = min(t, max(((ix - x[i]) * (ix - x[i]) + (iy - y[i]) * (iy - y[i])) /
                         (s[i] * s[i]),
                     ((ix - x[j]) * (ix - x[j]) + (iy - y[j]) * (iy - y[j])) /
                         (s[j] * s[j])));
    }
  }
  if (!f)
    printf("No show :(");
  else
    printf("%.8f", sqrt(t));
}
