#include <bits/stdc++.h>
using namespace std;
bool isPrime(int n) {
  if (n < 2) {
    return 0;
  }
  if (n % 2 == 0) {
    return n == 2;
  }
  for (int i = 3; i * i <= n; i++) {
    if (n % i == 0) return 0;
  }
  return 1;
}
long long ncr(int n, int r) {
  if (n < r) return 0;
  if (r == 0) return 1;
  return n * ncr(n - 1, r - 1) / r;
}
const int N = 60;
vector<int> adj[N];
bool vis[N];
long long x = 1;
void dfs(int cur, int v) {
  x *= v;
  vis[cur] = 1;
  for (auto ver : adj[cur])
    if (!vis[ver]) dfs(ver, 2);
}
int main() {
  double a, x, y;
  cin >> a >> x >> y;
  if (y <= 0 || abs(x) >= a) {
    cout << -1 << "\n";
  } else {
    if (y < a && abs(x) < a / 2) {
      cout << 1 << "\n";
      return 0;
    } else if (y < a && abs(x) >= a / 2) {
      cout << -1 << "\n";
      return 0;
    }
    y -= a;
    int lvl = ceil(y / a);
    if (lvl == y / a) {
      cout << -1 << "\n";
      return 0;
    }
    if (lvl % 2 == 0) {
      if (x == 0) {
        cout << -1 << "\n";
        return 0;
      }
      if (x < 0) {
        cout << lvl + lvl / 2 << "\n";
      } else {
        cout << lvl + 1 + lvl / 2 << "\n";
      }
    } else {
      if (abs(x) >= a / 2) {
        cout << -1 << "\n";
        return 0;
      }
      cout << lvl + 1 + lvl / 2 << "\n";
    }
  }
  return 0;
}
