import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { static int howManyGames(int p, int d, int m, int s) { // Return the number of games you can buy if (s < p) return 0; int l = (p - m) / d; int l1 = l + 1; int sum = (p + (p - l * d)) * l1 / 2; if (s >= sum) { int more = (s - sum) / m; return l1 + more; } else { int left = 1; int right = l1 - 1; while (left < right - 1) { int mid = left + (right - left) / 2; int cutoff = (p + (p - (mid - 1) * d)) * mid / 2; if (cutoff == s) { return mid; } else if (cutoff > s) { right = mid - 1; } else { left = mid; } } int cutoff = (p + (p - (right - 1) * d)) * right / 2; if (cutoff <= s) { return right; } return left; } } public static void main(String[] args) { Scanner in = new Scanner(System.in); int p = in.nextInt(); int d = in.nextInt(); int m = in.nextInt(); int s = in.nextInt(); int answer = howManyGames(p, d, m, s); System.out.println(answer); in.close(); } }