#include<bits/stdc++.h>
using namespace std;
using Int =__int128;

int p=0;
Int formula(string& s,int turn);
vector<char> op[3];

Int calc(Int lhs,Int rhs,char op){
    if(op=='+') return lhs+rhs;
    if(op=='-') return lhs-rhs;
    if(op=='*') return lhs*rhs;
    throw("what calc");
}

Int num(string& s){
    Int res=0;
    int op=1;
    if(s[p]=='-'){
        op=-1;
        p++;
    }
    else if(s[p]=='+'){
        op=1;
        p++;
    }
    while(isdigit(s[p])){
        res*=10;
        res+=s[p]-'0';
        p++;
    }
    return op*res;
}

Int term(string & s){
    if(s[p]=='('){
        p++;
        Int res=formula(s,0);
        p++;
        return res;
    }
    return num(s);
}

Int formula(string& s,int turn){
    if(turn==3) return term(s);
    Int res=formula(s,turn+1);
    while(p!=s.size() && s[p]!=')'){
        bool breaker=false;
        for(int i=0;i<turn;i++){
            for(int j=0;j<op[i].size();j++){
                if(op[i][j]==s[p]){
                    breaker=true;
                }
            }
        }
        if(breaker) break;
        char ops=s[p];
        p++;
        Int next=formula(s,turn+1);
        res=calc(res,next,ops);
    }
    return res;
}
int main(){
    string s;
    cin>>s;    
    Int res=-1e20;
    for(int i=0;i<3;i++){
        for(int j=0;j<3;j++){
            for(int k=0;k<3;k++){
                op[0].clear();
                op[1].clear();
                op[2].clear();
                op[i].push_back('+');
                op[j].push_back('-');
                op[k].push_back('*');
                p=0;
                Int ret=formula(s,0);
                res=max(res,ret);
            }
        }
    }
    cout<<(long long)(res)<<endl;
    return 0;
}
