#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-8;
const double pi = acos(-1.0);
const int inf = 0x3f3f3f3f;
const int INF = 2e9 + 7;
const int mod = 1e9 + 7;
long long powmod(long long a, long long b) {
  long long res = 1;
  a %= mod;
  assert(b >= 0);
  for (; b; b >>= 1) {
    if (b & 1) res = res * a % mod;
    a = a * a % mod;
  }
  return res;
}
int a, b, c;
double dis(double m) {
  double g = a * 1.0 * b / (m - b) + a;
  return sqrt(g * g + m * m);
}
struct point {
  double x, y;
  point() {}
  point(double _x, double _y) {
    x = _x;
    y = _y;
  }
};
struct line {
  point a, b;
};
double dist(point p1, point p2) {
  return sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y));
}
point intersection(point u1, point u2, point v1, point v2) {
  point ret = u1;
  double t = ((u1.x - v1.x) * (v1.y - v2.y) - (u1.y - v1.y) * (v1.x - v2.x)) /
             ((u1.x - u2.x) * (v1.y - v2.y) - (u1.y - u2.y) * (v1.x - v2.x));
  ret.x += (u2.x - u1.x) * t;
  ret.y += (u2.y - u1.y) * t;
  return ret;
}
point ptoline(point p, point l1, point l2) {
  point t = p;
  t.x += l1.y - l2.y, t.y += l2.x - l1.x;
  return intersection(p, t, l1, l2);
}
double calc(double m) {
  double g = a * 1.0 * b / (m - b) + a;
  return sqrt(g * g + m * m);
}
int main() {
  cin >> a >> b >> c;
  point o = point(b, a);
  double ans = 0;
  if (c <= max(a, b)) ans = min(min(a, b), c);
  double l = b * 1.0, r = 1e9;
  while (l + eps < r) {
    double m = (l + r) / 2;
    double mm = (m + r) / 2;
    if (dis(m) < dis(mm))
      r = mm;
    else
      l = m;
  }
  double g = dis(l);
  if (g < c * 1.0) return 0 * puts("My poor head =(");
  l = 0, r = c;
  while (l + eps < r) {
    double m = (l + r) / 2;
    double mm = (m + r) / 2;
    if (dist(o, ptoline(o, point(m, 0), point(0, sqrt(c * c - m * m)))) <
        dist(o, ptoline(o, point(mm, 0), point(0, sqrt(c * c - mm * mm)))))
      r = mm;
    else
      l = m;
  }
  printf("%.10f\n",
         min(a * 1.0, max(min(dist(o, ptoline(o, point(l, 0),
                                              point(0, sqrt(c * c - l * l)))),
                              c * 1.0),
                          ans)));
  return 0;
}
