#include <bits/stdc++.h>
using namespace std;
template <class T>
bool umin(T& a, T b) {
  if (a > b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
bool umax(T& a, T b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
int main() {
  int a, b, f, k, ans = 0;
  scanf("%d%d%d%d", &a, &b, &f, &k);
  int A = f * 2;
  int B = (a - f) * 2;
  int now = b;
  if (now >= f) {
    now -= f;
    for (int i = 1; i < k; i++) {
      if (i & 1) {
        if (now < B) {
          now = b, ans++;
          if (now < B) return puts("-1") * 0;
          now -= B;
        } else
          now -= B;
      } else {
        if (now < A) {
          now = b, ans++;
          if (now < A) return puts("-1") * 0;
          now -= A;
        } else
          now -= A;
      }
    }
    if (k & 1) {
      if (a - f > now) now = b, ans++;
      if (a - f > now) return puts("-1") * 0;
      printf("%d\n", ans);
    } else {
      if (f > now) now = b, ans++;
      if (f > now) return puts("-1") * 0;
      printf("%d\n", ans);
    }
  } else
    puts("-1");
  return 0;
}
