#include <bits/stdc++.h>
using std::cin;
using std::cout;
using std::vector;
class BoxManager {
 public:
  BoxManager();
  int fillBoxes(const int &cellLimit, int &nuts, int &delimiters,
                const int &cellCapacity);

 private:
  struct Box;
  vector<Box> boxes;
};
int main() {
  int cellLimitPerBox;
  cin >> cellLimitPerBox;
  int nuts;
  cin >> nuts;
  int delimiters;
  cin >> delimiters;
  int nutsLimitPerCell;
  cin >> nutsLimitPerCell;
  BoxManager boxMgr;
  int boxes =
      boxMgr.fillBoxes(cellLimitPerBox, nuts, delimiters, nutsLimitPerCell);
  cout << boxes << "\n";
  cin.get();
  cin.get();
  return 0;
}
struct BoxManager::Box {
  int cells;
};
BoxManager::BoxManager() {}
int BoxManager::fillBoxes(const int &cellLimit, int &nuts, int &delimiters,
                          const int &cellCapacity) {
  boxes.clear();
  while (nuts > 0) {
    Box box;
    if (cellLimit <= delimiters + 1) {
      box.cells = cellLimit;
      delimiters -= cellLimit - 1;
    } else {
      box.cells = delimiters + 1;
      delimiters = 0;
    }
    if (cellCapacity <= nuts) {
      nuts -= box.cells * cellCapacity;
    } else {
      nuts = 0;
    }
    boxes.push_back(box);
  }
  return boxes.size();
}
