#include <bits/stdc++.h>
using namespace std;
int a, b, l;
long double w;
long double heigth(long double x) {
  if (x < 1e-9) {
    if (l >= b) return w;
    return 0;
  }
  long double angle = asin(x / l);
  long double add = w / cos(angle);
  long double A = tan(angle) * b;
  x -= A;
  x += add;
  return x;
}
bool can(double x) {
  if (x > a) return false;
  if (x > b) return false;
  if (l <= b) return true;
  w = x;
  long double mn = 0;
  long double mx = l;
  for (int g = 0; g < 333; g++) {
    long double mnb = mn + (mx - mn) / 3;
    long double mne = mn + (mx - mn) / 3 * 2;
    long double hb = heigth(mnb);
    long double he = heigth(mne);
    if (hb < he)
      mn = mnb;
    else
      mx = mne;
  }
  if (heigth((mn + mx) / 2) - 5e-9 > a) return false;
  return true;
}
int main() {
  cin >> a >> b >> l;
  long double mn = 1e-7;
  long double mx = l;
  for (int x = 0; x < 333; x++) {
    long double md = (mn + mx) * 0.5;
    if (can(md)) {
      mn = md;
    } else {
      mx = md;
    }
  }
  double ans = (mn + mx) * 0.5;
  if (can(ans) || can(ans - 2e-8)) {
    if (l <= a && min(b, l) > ans) {
      ans = min(b, l);
    }
    ans -= 1e-9;
    cout << fixed << setprecision(8) << ans << endl;
  } else {
    cout << "My poor head =(" << endl;
  }
  return 0;
}
