#include <bits/stdc++.h>
using namespace std;
unsigned long mdc(unsigned long a, unsigned long b) {
  return (!b) ? a : mdc(b, a % b);
}
int main() {
  unsigned long a, h, w;
  cin >> a >> h >> w;
  if (a > h || a > w) {
    cout << "-1";
    return 0;
  }
  unsigned long g = mdc(h + a, w + a);
  unsigned long p = (h + a) / g;
  unsigned long q = (w + a) / g;
  unsigned long k = g / a;
  long int x = (k * q) - 1;
  long int y = (k * p) - 1;
  if (x >= 1 && y >= 1) {
    cout << setprecision(20) << fixed << (long double)(w - (x * a)) / (x + 1);
  } else
    cout << "-1";
}
