#include <bits/stdc++.h>
using namespace std;
bool func(deque<int>& v) {
  int x = v.back();
  if (x > 1) {
    v.pop_back();
    int y = x / 2;
    int y2 = x - y;
    if (y == 1)
      v.push_front(y);
    else
      v.push_back(y);
    if (y2 == 1)
      v.push_front(y2);
    else
      v.push_back(y2);
    return true;
  }
  return false;
}
void printv(deque<int>& v) {
  for (int i = 0; i < v.size(); i++) cout << v[i] << " ";
  cout << endl;
}
int main() {
  int k;
  int xyz[3];
  cin >> xyz[0] >> xyz[1] >> xyz[2] >> k;
  sort(xyz, xyz + 3);
  deque<int> first, second, third;
  first.push_back(xyz[2]);
  second.push_back(xyz[1]);
  third.push_back(xyz[0]);
  int i = 0;
  while (i < k) {
    if (func(first))
      i++;
    else
      break;
    if (i < k && func(second)) i++;
    if (i < k && func(third)) i++;
  }
  cout << (long long int)first.size() * second.size() * third.size();
}
