#include <bits/stdc++.h>
using namespace std;
template <typename T>
T next_int() {
  T x = 0, p = 1;
  char ch;
  do {
    ch = getchar();
  } while (ch <= ' ');
  if (ch == '-') {
    p = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    x = x * 10 + (ch - '0');
    ch = getchar();
  }
  return p * x;
}
string next_token() {
  char ch;
  string ans = "";
  do {
    ch = getchar();
  } while (ch <= ' ');
  while (ch > ' ') {
    ans += ch;
    ch = getchar();
  }
  return ans;
}
const long long INF = (long long)1e18 + 227 + 1;
const int INFINT = 1e9 + 227 + 1;
const int MAXN = (int)227 + 1;
const int MOD = (int)1e9 + 7;
const long double EPS = 1e-9;
long long bin_pow(long long a, long long b) {
  if (!b) return 1;
  long long ans = bin_pow(a, b / 2);
  ans = ans * ans % MOD;
  if (b % 2) ans = ans * a % MOD;
  return ans;
}
long long ans[MAXN][MAXN];
long long kek[MAXN];
int main() {
  long long n, m, k, x, y;
  cin >> n >> m >> k >> x >> y;
  if (n >= 2) {
    long long temp = k / (n * m + (n - 2) * m);
    for (int i = 0; i < n; i++)
      for (int j = 0; j < m; j++) ans[i][j] = temp * (1 + (i > 0 && i < n - 1));
    k %= (n * m + (n - 2) * m);
  } else {
    kek[0] = k / m;
    k %= m;
  }
  while (k) {
    for (int i = 0; i < n; i++) {
      if (k >= m) {
        kek[i]++;
        k -= m;
      } else {
        for (int j = 0; j < k; j++) ans[i][j]++;
        k = 0;
        break;
      }
    }
    for (int i = n - 2; i >= 1; i--) {
      if (k >= m) {
        kek[i]++;
        k -= m;
      } else {
        for (int j = 0; j < k; j++) ans[i][j]++;
        k = 0;
        break;
      }
    }
  }
  long long l = INF;
  long long r = -INF;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      l = min(l, ans[i][j] + kek[i]);
      r = max(r, ans[i][j] + kek[i]);
    }
  }
  x--;
  y--;
  cout << r << " " << l << " " << ans[x][y] + kek[x] << "\n";
}
