#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, m, x, y;
  long long int k;
  cin >> n >> m >> k >> x >> y;
  long long int vec[n];
  long long int veces1 = k / m;
  long long int veces2 = k % m;
  long long int veces3 = veces1 % n;
  veces1 /= n;
  memset(vec, 0, sizeof(vec));
  bool flag = true;
  int ini = 0;
  bool dir = true;
  int pos = 0;
  vector<vector<long long int> > vecesPorN;
  vector<int> inis;
  vector<bool> dirs;
  if (n > 1) {
    while (flag) {
      vector<long long int> aux(n);
      dirs.push_back(dir);
      for (int q = 0; q < n; q++) {
        vec[pos]++;
        if (dir) {
          if (pos == n - 1) {
            pos--;
            dir = false;
          } else {
            pos++;
          }
        } else {
          if (pos == 0) {
            pos++;
            dir = true;
          } else {
            pos--;
          }
        }
      }
      inis.push_back(ini);
      ini = pos;
      if (ini == 0) {
        flag = false;
      }
      for (int q = 0; q < n; q++) {
        aux[q] = vec[q];
      }
      vecesPorN.push_back(aux);
    }
  } else {
    vector<long long int> aux(1);
    aux[0] = 1;
    vecesPorN.push_back(aux);
    inis.push_back(0);
    dirs.push_back(true);
  }
  int siz = vecesPorN.size();
  long long int sd1 = veces1 / siz;
  long long int sd2 = veces1 % siz;
  long long int resMin = k;
  long long int resMax = 0;
  memset(vec, 0, sizeof(vec));
  if (sd1 != 0) {
    siz--;
    for (int q = 0; q < n; q++) {
      vec[q] = vecesPorN[siz][q] * sd1;
    }
  }
  if (sd2 != 0) {
    sd2--;
    for (int q = 0; q < n; q++) {
      vec[q] += vecesPorN[sd2][q];
    }
    sd2++;
  }
  pos = inis[sd2];
  dir = dirs[sd2];
  for (int q = 0; q < veces3; q++) {
    vec[pos]++;
    if (dir) {
      if (pos == n - 1) {
        pos--;
        dir = false;
      } else {
        pos++;
      }
    } else {
      if (pos == 0) {
        pos++;
        dir = true;
      } else {
        pos--;
      }
    }
  }
  for (int q = 0; q < n; q++) {
    resMax = max(resMax, vec[q]);
    resMin = min(resMin, vec[q]);
  }
  x--;
  long long int resSer = vec[x];
  if (veces2 != 0) {
    resMax = max(resMax, vec[pos] + 1);
    if (x == pos) {
      if (veces2 >= y) {
        resSer++;
      }
    }
  }
  cout << resMax << " " << resMin << " " << resSer << endl;
  return 0;
}
