#include <bits/stdc++.h>
using namespace std;
int n, tp1, tp2;
int p[20], tot;
int sf[5005];
char s[5005];
long long ans, sv[5005];
int Get_v(char a) { return a == '*'; }
long long calc(int l, int r) {
  tp1 = tp2 = 0;
  for (int i = 1; i <= n; i++) {
    if (i == r)
      while (tp1 && (sf[tp1] > l || s[sf[tp1]] == '*')) {
        if (s[sf[tp1]] == '+') sv[tp2 - 1] += sv[tp2], tp2--;
        if (s[sf[tp1]] == '*') sv[tp2 - 1] *= sv[tp2], tp2--;
        tp1--;
      }
    if (s[i] <= '9' && s[i] >= '0')
      sv[++tp2] = s[i] - '0';
    else {
      while ((sf[tp1] > l || i <= l) && Get_v(s[sf[tp1]]) > Get_v(s[i])) {
        if (s[sf[tp1]] == '+') sv[tp2 - 1] += sv[tp2], tp2--;
        if (s[sf[tp1]] == '*') sv[tp2 - 1] *= sv[tp2], tp2--;
        tp1--;
      }
      sf[++tp1] = i;
    }
  }
  while (tp1) {
    if (s[sf[tp1]] == '+') sv[tp2 - 1] += sv[tp2], tp2--;
    if (s[sf[tp1]] == '*') sv[tp2 - 1] *= sv[tp2], tp2--;
    tp1--;
  }
  return sv[1];
}
int main() {
  scanf("%s", s + 1), n = strlen(s + 1);
  for (int i = 1; i <= n; i++)
    if (s[i] == '*') p[++tot] = i;
  p[++tot] = n + 1;
  for (int i = 0; i <= tot; i++)
    for (int j = i + 1; j <= tot; j++) ans = max(ans, calc(p[i], p[j]));
  printf("%lld\n", ans);
  return 0;
}
