#include <bits/stdc++.h>
int main() {
  long long n, k, m, d;
  scanf("%lld%lld%lld%lld", &n, &k, &m, &d);
  long long mx = m;
  for (long long i = 2; i <= d; i++) {
    if ((n - 1) / (i - 1) / k == 0) break;
    long long t = n / ((i - 1) * k + 1);
    if (t > m) t = m;
    if ((n - t) / i / k >= t) continue;
    mx = std::max(mx, i * t);
  }
  printf("%lld", mx);
}
