#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1.0);
const double eps = 1e-8;
double x, y, le;
double Function(double a) {
  return y * sin(a) + x * cos(a) - le * sin(a) * cos(a);
}
double Function2(double a) { return x / sin(a) + y / cos(a); }
double trisection(double l, double r) {
  while (r - l > eps) {
    double ll = l + (r - l) / 3;
    double rr = l + 2 * (r - l) / 3;
    double xl = Function(ll);
    double xr = Function(rr);
    if (xl < xr)
      r = rr;
    else
      l = ll;
  }
  return l;
}
double trisection2(double l, double r) {
  while (r - l > eps) {
    double ll = l + (r - l) / 3;
    double rr = l + 2 * (r - l) / 3;
    double xl = Function2(ll);
    double xr = Function2(rr);
    if (xl < xr)
      r = rr;
    else
      l = ll;
  }
  return l;
}
int main() {
  scanf("%lf%lf%lf", &x, &y, &le);
  double left1 = 0;
  double right1 = PI / 2;
  double res1 = trisection2(left1, right1);
  double ans1 = Function2(res1);
  if (le > ans1) {
    printf("My poor head =(\n");
    return 0;
  }
  if (x > y) swap(x, y);
  if (le <= y) {
    printf("%.7lf\n", (double)min(x, le));
    return 0;
  }
  double left = 0;
  double right = PI / 2;
  double res = trisection(left, right);
  printf("%.7lf\n", min(le, Function(res)));
  return 0;
}
