#include <bits/stdc++.h>
using namespace std;
static const double EPS = 1e-11;
const double pi = acos(-1);
int dx[] = {0, 1, 0, -1, 1, 1, -1, -1}, dy[] = {1, 0, -1, 0, 1, -1, 1, -1};
double a, b, l;
double getw(double th) {
  return ((tan(th) * b + a - l * sin(th)) / sqrt(tan(th) * tan(th) + 1));
}
int main() {
  cin >> a >> b >> l;
  if (a > b) swap(a, b);
  if (l <= b) {
    cout << min(a, l) << endl;
    return 0;
  }
  double lt = 0, ht = pi / 2;
  while (abs(ht - lt) > EPS) {
    double mid1 = lt + (ht - lt) / 3;
    double mid2 = mid1 + (ht - lt) / 3;
    double wm1 = getw(mid1);
    double wm2 = getw(mid2);
    if (wm1 >= wm2)
      lt = mid1;
    else
      ht = mid2;
    if (wm2 < EPS || wm1 < EPS) {
      cout << "My poor head =(" << endl;
      return 0;
    }
  }
  printf("%.10f\n", min(l, getw(lt)));
}
