#include <bits/stdc++.h>
using namespace std;
bool comp(pair<long, long> &a, pair<long, long> &b) {
  if (a.first != b.first) return a.first < b.first;
  return a.second < b.second;
}
long long int LOGINT(long long int value, long long int base) {
  long long int temp = 1, i;
  for (i = 1; temp < value; i++) {
    if (temp * base > value) break;
    temp = (temp * base);
  }
  return i - 1;
}
long long int Power(long long int a, long long int n) {
  if (!n) return 1;
  if (n == 1) return a;
  long long int x = Power(a, n / 2);
  return (n & 1) ? x * x * a : x * x;
}
int main() {
  ios::sync_with_stdio(false);
  long long int a1, a2, k1, k2, n, tem;
  cin >> a1 >> a2 >> k1 >> k2 >> n;
  tem = n;
  long long int arr[a1 + 20], brr[a2 + 20];
  memset(arr, 0, sizeof arr);
  memset(brr, 0, sizeof brr);
  if (k1 >= k2) {
    for (long long int i = 1; i <= a1; i++) {
      if (k1 - 1 <= n) {
        arr[i] += (k1 - 1);
        n -= (k1 - 1);
      } else {
        arr[i] += n;
        n = 0;
      }
    }
    if (n > 0) {
      for (long long int i = 1; i <= a2; i++) {
        if (k2 - 1 <= n) {
          brr[i] += (k2 - 1);
          n -= (k2 - 1);
        } else {
          brr[i] += n;
          n = 0;
        }
      }
    }
    if (n > 0) {
      for (long long int i = 1; i <= a1; i++) {
        arr[i]++;
        n--;
        if (n == 0) break;
      }
      if (n > 0) {
        for (long long int i = 1; i <= a2; i++) {
          brr[i]++;
          n--;
          if (n == 0) break;
        }
      }
    }
  } else {
    for (long long int i = 1; i <= a2; i++) {
      if (k2 - 1 <= n) {
        brr[i] += (k2 - 1);
        n -= (k2 - 1);
      } else {
        brr[i] += n;
        n = 0;
      }
    }
    if (n > 0) {
      for (long long int i = 1; i <= a1; i++) {
        if (k1 - 1 <= n) {
          arr[i] += (k1 - 1);
          n -= (k1 - 1);
        } else {
          arr[i] += n;
          n = 0;
        }
      }
    }
    if (n > 0) {
      for (long long int i = 1; i <= a2; i++) {
        brr[i]++;
        n--;
        if (n == 0) break;
      }
      if (n > 0) {
        for (long long int i = 1; i <= a1; i++) {
          arr[i]++;
          n--;
          if (n == 0) break;
        }
      }
    }
  }
  long long int c = 0;
  for (long long int i = 1; i <= a1; i++)
    if (arr[i] >= k1) c++;
  for (long long int i = 1; i <= a2; i++)
    if (brr[i] >= k2) c++;
  cout << c << " ";
  c = 0;
  memset(arr, 0, sizeof arr);
  memset(brr, 0, sizeof brr);
  n = tem;
  if (k1 >= k2) {
    for (long long int i = 1; i <= a2; i++) {
      if (k2 <= n) {
        brr[i] += k2;
        n -= k2;
      } else {
        brr[i] += n;
        n = 0;
      }
    }
    if (n > 0) {
      for (long long int i = 1; i <= a1; i++) {
        if (k1 <= n) {
          arr[i] += k1;
          n -= k1;
        } else {
          arr[i] += n;
          n = 0;
        }
      }
    }
    if (n > 0) {
      for (long long int i = 1; i <= a2; i++) {
        brr[i]++;
        n--;
        if (n == 0) break;
      }
      if (n > 0) {
        for (long long int i = 1; i <= a1; i++) {
          arr[i]++;
          n--;
          if (n == 0) break;
        }
      }
    }
  } else {
    for (long long int i = 1; i <= a1; i++) {
      if (k1 <= n) {
        arr[i] += k1;
        n -= k1;
      } else {
        arr[i] += n;
        n = 0;
      }
    }
    if (n > 0) {
      for (long long int i = 1; i <= a2; i++) {
        if (k2 <= n) {
          brr[i] += k2;
          n -= k2;
        } else {
          brr[i] += n;
          n = 0;
        }
      }
    }
    if (n > 0) {
      for (long long int i = 1; i <= a1; i++) {
        arr[i]++;
        n--;
        if (n == 0) break;
      }
      if (n > 0) {
        for (long long int i = 1; i <= a2; i++) {
          brr[i]++;
          n--;
          if (n == 0) break;
        }
      }
    }
  }
  for (long long int i = 1; i <= a1; i++)
    if (arr[i] >= k1) c++;
  for (long long int i = 1; i <= a2; i++)
    if (brr[i] >= k2) c++;
  cout << c << endl;
}
