#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-10, jd = 1e-12;
const int oo = ~0u >> 2, mo = (int)1e9 + 7;
struct po {
  double x, y;
  po() { x = y = 0; }
  po(double X, double Y) { x = X, y = Y; }
};
int A, B, L;
double w;
int sgn(double x) {
  if (fabs(x) <= eps) return 0;
  if (x > -eps) return 1;
  return -1;
}
double dis(po a, po b) {
  return sqrt(((a.x - b.x) * (a.x - b.x)) + ((a.y - b.y) * (a.y - b.y)));
}
double det(po a, po b, po c) {
  return (b.x - a.x) * (c.y - a.y) - (c.x - a.x) * (b.y - a.y);
}
double calc(double x) {
  po a = po(0, x), b = po(sqrt(((L) * (L)) - ((x) * (x))), 0), c = po(A, B);
  double l = dis(a, b), d = det(a, b, c);
  double ret = fabs(d) / l;
  return ret;
}
int main() {
  cin >> A >> B >> L;
  if (A > B) swap(A, B);
  if (sgn(B - L) >= 0)
    w = min(L, A);
  else {
    double l = 0, r = L;
    for (int i = 1; i <= 10000; ++i) {
      double m1 = (l * 2 + r) / 3, m2 = (l + r * 2) / 3;
      double t1 = calc(m1), t2 = calc(m2);
      int t = sgn(t1 - t2);
      if (t <= 0)
        r = m2;
      else
        l = m1;
    }
    w = calc(l);
  }
  if (w < 1e-7)
    cout << "My poor head =(" << endl;
  else
    cout << fixed << setprecision(8) << w << endl;
}
