#include <bits/stdc++.h>
using namespace std;
double n, m, t, x, y, k, a, b, lng, w, l, r, alpha;
double f(double p) {
  return (p * a + sqrt(lng * lng - p * p) * b - p * sqrt(lng * lng - p * p)) /
         lng;
}
int main() {
  cout << fixed << setprecision(12);
  cin >> a >> b >> lng;
  double EPS = 0.0000000001;
  double l = 0.0, r = lng;
  if (a > b) swap(a, b);
  if (lng <= a) {
    cout << lng << endl;
    return 0;
  }
  if (lng <= b) {
    cout << a << endl;
    return 0;
  }
  double m1 = l + (r - l) / 3, m2 = r - (r - l) / 3;
  for (int _ = 300; _--;) {
    m1 = (l * 2 + r) / 3, m2 = (l + r * 2) / 3;
    if (f(m1) > f(m2))
      l = m1;
    else
      r = m2;
  }
  if (f(l) < 1e-8) {
    cout << "My poor head =(" << endl;
  } else
    cout << f(l) << endl;
  return 0;
}
