#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000007;
long long powmod(long long a, long long b) {
  long long res = 1;
  a %= mod;
  assert(b >= 0);
  for (; b; b >>= 1) {
    if (b & 1) res = res * a % mod;
    a = a * a % mod;
  }
  return res;
}
template <typename N>
N gcd(N a, N b) {
  return b ? gcd(b, a % b) : a;
}
void precision(long long pr) {
  cout.precision(pr);
  cout << fixed;
}
const int N = 1e6 + 21;
long long n, m, x, y;
long long a[121][121];
int main() {
  long long i, j, k;
  cin >> n >> m >> k >> x >> y;
  long long r1, r2, r3, r4, mn = 1e18 + 21, mx = 0, s;
  if (n == 1) {
    r1 = k / m;
    r2 = k % m;
    if (r2 == 0)
      mn = r1, mx = r1, s = r1;
    else if (y > r2)
      mn = r1, mx = r1 + 1, s = r1;
    else
      mn = r1, mx = r1 + 1, s = r1 + 1;
    cout << mx << " " << mn << " " << s << '\n';
    return 0;
  }
  r1 = k / (2 * (n - 1) * m);
  r2 = k % (2 * (n - 1) * m);
  for ((i) = (int)(1); (i) <= (int)(n); (i)++)
    for ((j) = (int)(1); (j) <= (int)(m); (j)++)
      if (i == 1 || i == n)
        a[i][j] = r1;
      else
        a[i][j] = 2 * r1;
  for ((i) = (int)(1); (i) <= (int)(n - 1); (i)++) {
    for ((j) = (int)(1); (j) <= (int)(m); (j)++) {
      if (!r2) break;
      r2--;
      a[i][j]++;
    }
    if (!r2) break;
  }
  for ((i) = (int)(n); (i) >= (int)(2); (i)--) {
    for ((j) = (int)(1); (j) <= (int)(m); (j)++) {
      if (!r2) break;
      r2--;
      a[i][j]++;
    }
    if (!r2) break;
  }
  for ((i) = (int)(1); (i) <= (int)(n); (i)++)
    for ((j) = (int)(1); (j) <= (int)(m); (j)++) {
      mn = (mn < a[i][j] ? mn : a[i][j]);
      mx = (mx > a[i][j] ? mx : a[i][j]);
      if (i == x && j == y) s = a[i][j];
    }
  cout << mx << " " << mn << " " << s << '\n';
  return 0;
}
