#include <bits/stdc++.h>
using namespace std;
double x, y, l, w;
double cal(double ang) {
  double s, h;
  s = l * cos(ang) + w * sin(ang) - y;
  h = s * tan(ang) + w * cos(ang);
  return h;
}
bool solve() {
  double ang1, ang2, m, mm, mid, midmid;
  ang1 = 0.0;
  ang2 = acos(-1.0) / 2;
  if (x < w || y < w) {
    return 0;
  }
  while (ang2 - 0.0000001 > ang1) {
    mid = (ang1 + ang2) / 2;
    midmid = (mid + ang2) / 2;
    m = cal(mid);
    mm = cal(midmid);
    if (mm > m)
      ang1 = mid;
    else
      ang2 = midmid;
  }
  if (m > x)
    return 0;
  else
    return 1;
}
double MIN(double a, double b) { return a < b ? a : b; }
double MAX(double a, double b) { return a > b ? a : b; }
int main() {
  double ang1, ang2, m, mm, mid, midmid, left, right;
  int i;
  while (scanf("%lf%lf%lf", &x, &y, &l) != EOF) {
    left = 0.0;
    right = x;
    if (x > y) right = y;
    if (right > l) right = l;
    for (i = 0; i < 2000; i++) {
      w = (left + right) / 2;
      if (solve()) {
        left = w;
      } else
        right = w;
    }
    if (w > l) w = l;
    if (l <= MAX(x, y)) {
      if (w < MIN(x, y)) w = MIN(x, y);
    }
    if (w > l) w = l;
    if (w < 1.0e-12)
      printf("My poor head =(\n");
    else
      printf("%.7lf\n", w);
  }
  return 0;
}
