#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1.0);
int toInt(string s) {
  int r = 0;
  istringstream sin(s);
  sin >> r;
  return r;
}
long long toInt64(string s) {
  long long r = 0;
  istringstream sin(s);
  sin >> r;
  return r;
}
double toDouble(string s) {
  double r = 0;
  istringstream sin(s);
  sin >> r;
  return r;
}
double dist(double x1, double y1, double x2, double y2) {
  return sqrt(((x1 - x2) * (x1 - x2)) + ((y1 - y2) * (y1 - y2)));
}
bool isUpperCase(char c) { return c >= 'A' && c <= 'Z'; }
bool isLowerCase(char c) { return c >= 'a' && c <= 'z'; }
bool isLetter(char c) { return c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z'; }
bool isDigit(char c) { return c >= '0' && c <= '9'; }
char toLowerCase(char c) { return (isUpperCase(c)) ? (c + 32) : c; }
char toUpperCase(char c) { return (isLowerCase(c)) ? (c - 32) : c; }
template <class T>
inline T strTo(string s) {
  istringstream is(s);
  T v;
  is >> v;
  return v;
}
template <class T>
inline string toStr(const T& v) {
  ostringstream os;
  os << v;
  return os.str();
}
template <class T>
inline int cMin(T& a, const T& b) {
  return b < a ? a = b, 1 : 0;
}
template <class T>
inline int cMax(T& a, const T& b) {
  return a < b ? a = b, 1 : 0;
}
template <class T>
inline int cBit(T n) {
  return n ? cBit(n & (n - 1)) + 1 : 0;
}
template <class T>
inline T lowbit(T n) {
  return (n ^ (n - 1)) & n;
}
template <class T>
inline T GCD(T a, T b) {
  if (a < 0) return GCD(-a, b);
  if (b < 0) return GCD(a, -b);
  return (b == 0) ? a : GCD(b, a % b);
}
template <class T>
inline T LCM(T a, T b) {
  if (a < 0) return LCM(-a, b);
  if (b < 0) return LCM(a, -b);
  return a * (b / gcd(a, b));
}
int n;
int a[1000005];
int b[1000005];
int c[1000005];
int main() {
  int l, x, y;
  cin >> l >> x >> y;
  if (y % l == 0) {
    cout << "-1" << endl;
    return 0;
  }
  int maxh, t = 1;
  maxh = y / l + 1;
  for (int i = 1; i <= maxh; i++) {
    if (i == 1) {
      a[i] = 1;
      b[i] = 0;
      c[i] = 1;
    } else {
      if (i % 2) {
        a[i] = ++t;
        b[i] = ++t;
        c[i] = 2;
      } else {
        a[i] = ++t;
        b[i] = 0;
        c[i] = 1;
      }
    }
  }
  if (c[maxh] == 1) {
    if (x * 2 < l && x * 2 > (-1) * l)
      cout << a[maxh] << endl;
    else
      cout << "-1" << endl;
  } else {
    if (x > 0 && x < l)
      cout << b[maxh] << endl;
    else if (x < 0 && x > l * (-1))
      cout << a[maxh] << endl;
    else
      cout << "-1" << endl;
  }
  return 0;
}
