def find_min_beads(a, b, c, k):
return max(k - 1, (a + b + c) // k)
a, b, c, k = map(int, input().split())
print(find_min_beads(a, b, c, k))
ZGVmIGZpbmRfbWluX2JlYWRzKGEsIGIsIGMsIGspOgogICAgcmV0dXJuIG1heChrIC0gMSwgKGEgKyBiICsgYykgLy8gaykKCmEsIGIsIGMsIGsgPSBtYXAoaW50LCBpbnB1dCgpLnNwbGl0KCkpCnByaW50KGZpbmRfbWluX2JlYWRzKGEsIGIsIGMsIGspKQo=