#include <bits/stdc++.h>
using namespace std;
long long int n, s, m, k, ans, b, d, f, s1, s2, s3, r, w, a, c, z2, z1, z3,
    ans1;
string j, t, g;
bool ww = false, wwr = false;
set<char> ss;
vector<pair<long long int, long long int>> a1;
char e1, e2;
int main() {
  cin >> a >> b >> c >> d;
  s1 = a * d;
  n = a - c;
  if (b < c) {
    cout << -1;
    return 0;
  }
  if (d == 1 && (b < c || b < n)) {
    cout << -1;
    return 0;
  }
  if (d == 2 && (b < c || b < 2 * n)) {
    cout << -1;
    return 0;
  }
  s = c;
  m = b - c;
  if (d % 2 == 0) {
    while (s1 != s + c) {
      if (n * 2 <= m) {
        s += n * 2;
        m -= n * 2;
      } else {
        m = b;
        f++;
        if (n * 2 <= m) {
          s += n * 2;
          m -= n * 2;
        } else {
          cout << -1;
          return 0;
        }
      }
      if (s1 == s + c) break;
      if (c * 2 <= m) {
        s += c * 2;
        m -= c * 2;
      } else {
        m = b;
        f++;
        if (c * 2 <= m) {
          s += c * 2;
          m -= c * 2;
        } else {
          cout << -1;
          return 0;
        }
      }
    }
    if (m < c) f++;
  } else {
    while (s1 != s + n) {
      if (n * 2 <= m) {
        s += n * 2;
        m -= n * 2;
      } else {
        m = b;
        f++;
        if (n * 2 <= m) {
          s += n * 2;
          m -= n * 2;
        } else {
          cout << -1;
          return 0;
        }
      }
      if (s1 == s + n) break;
      if (c * 2 <= m) {
        s += c * 2;
        m -= c * 2;
      } else {
        m = b;
        f++;
        if (c * 2 <= m) {
          s += c * 2;
          m -= c * 2;
        } else {
          cout << -1;
          return 0;
        }
      }
    }
    if (m < n) f++;
  }
  cout << f;
  return 0;
}
