#include <bits/stdc++.h>
using namespace std;
int l, a, b, e, L;
double nw, xw, mw, A, B, p, u, ty;
inline double d(double y) {
  A = 1. / sqrt(L - y * y);
  B = 1. / y;
  u = sqrt(A * A + B * B);
  ty = (1. + mw * u - A * b) / B;
  if (ty > a + 1e-9) e = 1;
  return a - ty;
}
inline bool cd() {
  double ny = 0, xy = l, m1, m2;
  e = 0;
  while (fabs(xy - ny) > 1e-9) {
    m1 = ny + (xy - ny) / 3;
    m2 = ny + 2 * (xy - ny) / 3;
    if (d(m1) < d(m2))
      xy = m2;
    else
      ny = m1;
    if (e) return 0;
  }
  return 1;
}
int main() {
  scanf("%d %d %d", &a, &b, &l);
  L = l * l;
  if (a > b) swap(a, b);
  if (l <= b) {
    printf("%d\n", min(l, a));
    return 0;
  }
  nw = 0;
  xw = l;
  while (fabs(xw - nw) > 1e-9) {
    mw = (nw + xw) / 2;
    if (cd())
      nw = mw;
    else
      xw = mw;
  }
  if (xw < 1e-9)
    puts("My poor head =(");
  else
    printf("%.9lf\n", nw);
  return 0;
}
