#include <bits/stdc++.h>
using namespace std;
inline int read() {
  int x = 0;
  char ch = getchar();
  bool positive = 1;
  for (; ch < '0' || ch > '9'; ch = getchar())
    if (ch == '-') positive = 0;
  for (; ch >= '0' && ch <= '9'; ch = getchar()) x = x * 10 + ch - '0';
  return positive ? x : -x;
}
const long double PI = 3.1415926535897932384626433832795;
const long double EPS = 1e-8;
long double a, b, l;
inline long double f(long double x) {
  return a * sin(x) + b * cos(x) - l * sin(x + x) / 2;
}
int main() {
  a = read(), b = read(), l = read();
  if (l < min(a, b) + EPS) {
    printf("%.10lf\n", double(l));
    return 0;
  }
  if (l < a + EPS) {
    printf("%.10lf\n", double(b));
    return 0;
  }
  if (l < b + EPS) {
    printf("%.10lf\n", double(a));
    return 0;
  }
  long double l = 0, r = PI / 2;
  while (r - l > 1e-15) {
    if (f((l + l + r) / 3) < f((l + r + r) / 3))
      r = (l + r + r) / 3;
    else
      l = (l + l + r) / 3;
  }
  long double ans = f(l);
  if (ans < EPS)
    printf("My poor head =(\n");
  else
    printf("%.10lf\n", double(f(l)));
  return 0;
}
