#include <bits/stdc++.h>
using namespace std;
int k, tot;
int op[4];
char s;
long long ans = 0x3f3f3f3f3f3f3f3f;
long long a[5];
template <typename T>
inline void read(T& x) {
  x = 0;
  T op = 1;
  char c = getchar();
  for (; c < '0' || c > '9'; c = getchar())
    if (c == '-') op = -1;
  for (; c <= '9' && c >= '0'; c = getchar()) x = (x << 3) + (x << 1) + c - '0';
}
void dfs(int p, int k) {
  if (p == 4) {
    ans = ans < a[k] ? ans : a[k];
    return;
  }
  for (int i = 1; i <= 4; ++i) {
    if (a[i] == -1) continue;
    for (int j = 1; j <= 4; ++j) {
      if (i == j || a[j] == -1) continue;
      if (op[p]) {
        a[i] += a[j];
        long long t = a[j];
        a[j] = -1;
        dfs(p + 1, i);
        a[j] = t;
        a[i] -= a[j];
      } else {
        a[i] *= a[j];
        long long t = a[j];
        a[j] = -1;
        dfs(p + 1, i);
        a[j] = t;
        a[i] /= a[j];
      }
    }
  }
}
int main() {
  for (int i = 1; i <= 4; ++i) {
    read(a[i]);
    if (!a[i]) k = 1;
  }
  while (tot < 3) {
    scanf("%c", &s);
    if (s == '+') op[++tot] = 1;
    if (s == '*') {
      op[++tot] = 0;
      if (k) {
        puts("0");
        return 0;
      }
    }
  }
  dfs(1, 0);
  printf("%lld\n", ans);
  return 0;
}
