#include <bits/stdc++.h>
using namespace std;
const int INF = numeric_limits<int>::max();
const int STEPS = 100;
long double a, b, l;
long double h(long double al, long double w) {
  long double k = l - (b - w * sin(al)) / cos(al);
  return w * cos(al) + sin(al) * k;
}
bool check_w(long double w) {
  long double l = 0, r = M_PI / 2 - 1e-8;
  for (int i = 0; i < STEPS; ++i) {
    long double diff = (r - l) / 3;
    long double x1 = l + diff, x2 = r - diff;
    long double f1 = h(x1, w), f2 = h(x2, w);
    if (f1 < f2) {
      l = x1;
    } else {
      r = x2;
    }
  }
  return h(l, w) <= a;
}
int main() {
  cin >> a >> b >> l;
  if (!check_w(0)) {
    cout << "My poor head =(\n";
  } else {
    long double x, lx = 0, rx = min(a, b);
    for (int i = 0; i < STEPS; ++i) {
      x = (lx + rx) / 2;
      if (check_w(x)) {
        lx = x;
      } else {
        rx = x;
      }
    }
    if (l <= a) {
      lx = max(lx, b);
    }
    if (l <= b) {
      lx = max(lx, a);
    }
    lx = min(lx, l);
    cout << fixed << setprecision(7) << lx << endl;
  }
  return 0;
}
