#include <bits/stdc++.h>
using namespace std;
int main() {
  long long n, m, k, x, y, turns, covered, remain, maxt, mint, ans;
  long long flag = 0;
  cin >> n >> m >> k >> x >> y;
  if (n == 1) {
    maxt = (k / m) + (k % m > 0);
    mint = (k / m);
    ans = mint;
    if (y <= k % m) ans++;
    cout << maxt << " " << mint << " " << ans << endl;
    return 0;
  }
  turns = (m * (n - 2) + k) / (2 * m * (n - 2) + 2 * m);
  covered = m * (n - 2) * (2 * turns - 1) + 2 * m * turns;
  remain = k;
  if (covered > 0) remain -= covered;
  if (turns == 0) {
    maxt = 1;
    mint = 0;
    ans = 0;
    for (long long i = 1; i <= n; i++) {
      if (remain <= 0) break;
      if (x != i) {
        remain -= m;
      } else if (x == i) {
        if (y <= remain) {
          flag = 1;
          ans++;
        }
        remain -= m;
      }
    }
    cout << maxt << " " << mint << " " << ans << endl;
    return 0;
  }
  long long tot = (n - 1) * m;
  if (n == 2) {
    mint = turns;
    maxt = turns;
    if (remain > 0) maxt++;
  } else if (remain > tot) {
    maxt = 2 * turns + 1;
    mint = turns;
  } else if (remain > 0) {
    maxt = 2 * turns;
    mint = turns;
  } else {
    maxt = 2 * turns - 1;
    mint = turns;
  }
  if (x == 1 || x == n)
    ans = mint;
  else
    ans = 2 * turns - 1;
  for (long long i = n - 1; i >= 1; i--) {
    if (remain <= 0) break;
    if (x != i) {
      remain -= m;
    } else if (x == i) {
      if (y <= remain) {
        flag = 1;
        ans++;
      }
      remain -= m;
    }
  }
  for (long long i = 2; i <= n; i++) {
    if (remain <= 0) break;
    if (x != i) {
      remain -= m;
    } else if (x == i) {
      if (y <= remain) {
        flag = 1;
        ans++;
      }
      remain -= m;
    }
  }
  cout << maxt << " " << mint << " " << ans << endl;
}
