#include <bits/stdc++.h>
using namespace std;
void sieve(long long n) {
  bool prime[1000001];
  memset(prime, true, sizeof(prime));
  prime[1] = false;
  for (long long p = 2; p * p <= n; p++) {
    if (prime[p] == true) {
      for (long long i = p * 2; i <= n; i += p) prime[i] = false;
    }
  }
}
bool isPrime(long long n) {
  if (n <= 1) return false;
  if (n <= 3) return true;
  if (n % 2 == 0 || n % 3 == 0) return false;
  for (long long i = 5; i * i <= n; i = i + 6) {
    if (n % i == 0 || n % (i + 2) == 0) return false;
  }
  return true;
}
int main() {
  long long a, b, f, k, x;
  cin >> a >> b >> f >> k;
  if (b < max(f, a - f)) {
    cout << "-1";
    return 0;
  }
  long long c = 0;
  x = b - f;
  for (long long i = 1; i < k; i++) {
    if (i % 2 == 1) {
      if (x >= 2 * (a - f))
        x -= 2 * (a - f);
      else {
        if (b >= 2 * (a - f)) {
          c++;
          x = b - 2 * (a - f);
        } else {
          cout << "-1";
          return 0;
        }
      }
    } else {
      if (x >= 2 * f) {
        x -= 2 * f;
      } else {
        if (b >= 2 * f) {
          c++;
          x = b - 2 * f;
        } else {
          cout << "-1";
          return 0;
        }
      }
    }
  }
  if (k % 2 == 0) {
    if (x < f) c++;
  } else {
    if (x < a - f) c++;
  }
  cout << c;
}
