#include <bits/stdc++.h>
using namespace std;
double a, b, l;
bool eq(double a, double b) { return fabs(a - b) < 1e-7; }
bool check(double x1, double y1, double x2, double y2, double x3, double y3,
           double x4, double y4) {
  double a1, b1, c1, a2, b2, c2, x, y;
  a1 = y1 - y2;
  b1 = x2 - x1;
  c1 = -x1 * (y1 - y2);
  a2 = y3 - y4;
  b2 = x4 - x3;
  c2 = -x3 * (y3 - y4);
  if (eq(a1 * b2, a2 * b1)) return false;
  x = (b1 * c2 - b2 * c1) / (a1 * b2 - a2 * b1);
  y = (a2 * c1 - a1 * c2) / (a1 * b2 - a2 * b1);
  if (x > min(x1, x2) - (1e-7) && x < max(x1, x2) + 1e-7 &&
      x > min(x3, x4) - (1e-7) && x < max(x3, x4) + 1e-7) {
    if (y > min(y1, y2) - (1e-7) && y < max(y1, y2) + 1e-7 &&
        y > min(y3, y4) - (1e-7) && y < max(y3, y4) + 1e-7)
      return true;
    return false;
  }
  return false;
}
bool checkrect(double x, double y, double x1, double y1, double x2, double y2) {
  return x >= x1 - (1e-7) && x <= x2 + 1e-7 && y >= y1 - (1e-7) &&
         y <= y2 + (1e-7);
}
double f(double x) {
  double y, tt, lo, hi, mid, x1, y1, x2, y2;
  int cnt;
  y = sqrt(l * l - x * x);
  return min(fabs((y * b + x * a - x * y) / sqrt(y * y + x * x)), l);
  tt = (acos(-1.0)) / 2.0 - acos(x / l);
  cnt = 0;
  lo = 0.0;
  hi = l;
  while (cnt < 1000) {
    cnt++;
    mid = (lo + hi) / 2.0;
    x1 = x + mid * cos(tt);
    y1 = mid * sin(tt);
    x2 = mid * cos(tt);
    y2 = y + mid * sin(tt);
    if ((checkrect(x1, y1, 0, 0, b + 1e9, a) ||
         checkrect(x1, y1, 0, 0, b, a + 1e9)) &&
        (checkrect(x2, y2, 0, 0, b + 1e9, a) ||
         checkrect(x2, y2, 0, 0, b, a + 1e9))) {
      if (!check(x1, y1, x2, y2, b, a, b, a + 1e9) &&
          !check(x1, y1, x2, y2, b, a, b + 1e9, a))
        lo = mid;
      else
        hi = mid;
    } else
      hi = mid;
  }
  return (lo + hi) / 2.0;
}
int main() {
  double lo, hi, lt, rt, r, c;
  int cnt;
  scanf("%lf%lf%lf", &a, &b, &l);
  if (l <= a && l <= b) {
    printf("%.10lf\n", l);
    return 0;
  }
  if (l <= b && l > a) {
    printf("%.10lf\n", a);
    return 0;
  }
  if (l <= a && l > b) {
    printf("%.10lf\n", b);
    return 0;
  }
  lo = 0.0;
  hi = l;
  cnt = 0;
  while (cnt < 100000) {
    cnt++;
    lt = (2.0 * lo + hi) / 3.0;
    rt = (lo + 2.0 * hi) / 3.0;
    r = f(lt);
    c = f(rt);
    if (r + (1e-9) < c)
      hi = rt;
    else
      lo = lt;
  }
  if (f((lo + hi) / 2.0) > 1e-7)
    printf("%.10lf\n", f((lo + hi) / 2.0));
  else
    printf("My poor head =(");
  return 0;
}
