#include <bits/stdc++.h>
using namespace std;
template <typename T>
inline int sz(const T& x) {
  return (int)x.size();
}
int main() {
  cin.sync_with_stdio(false);
  cout.sync_with_stdio(false);
  long long x, y, z, k;
  cin >> x >> y >> z >> k;
  long long a[3] = {x - 1, y - 1, z - 1};
  sort(a, a + 3);
  long long d[3] = {1, 1, 1};
  if (a[0] * 3 >= k) {
    long long q = k / 3;
    long long r = k % 3;
    for (int i = 0; i < 3; ++i) d[i] += q + (i < r ? 1 : 0);
  } else {
    d[0] += a[0];
    k -= a[0];
    if (a[1] * 2 >= k) {
      long long q = k / 2;
      long long r = k % 2;
      d[1] += q;
      d[2] += q;
      if (r) d[2] += 1;
    } else {
      d[1] += a[1];
      k -= a[1];
      k = min(k, a[2]);
      d[2] += k;
    }
  }
  cout << (d[0] * d[1] * d[2]) << endl;
  return 0;
}
