#include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); long long Q,Y; cin >> Q >> Y; vector S(Q); for(auto &s : S) cin >> s; long long low = -1,high = Y+2; while(high-low > 1){ long long mid = (high+low)/2; stack st; for(auto s : S){ if(s == "X") st.push(mid); else if(s == "+"){ long long v1 = st.top(); st.pop(); long long v2 = st.top(); st.pop(); st.push(v1+v2); } else if(s == "min"){ long long v1 = st.top(); st.pop(); long long v2 = st.top(); st.pop(); st.push(min(v1,v2)); } else if(s == "max"){ long long v1 = st.top(); st.pop(); long long v2 = st.top(); st.pop(); st.push(max(v1,v2)); } else st.push(stoll(s)); } if(st.top() < Y) low = mid; else high = mid; } { long long mid = high; stack st; for(auto s : S){ if(s == "X") st.push(mid); else if(s == "+"){ long long v1 = st.top(); st.pop(); long long v2 = st.top(); st.pop(); st.push(v1+v2); } else if(s == "min"){ long long v1 = st.top(); st.pop(); long long v2 = st.top(); st.pop(); st.push(min(v1,v2)); } else if(s == "max"){ long long v1 = st.top(); st.pop(); long long v2 = st.top(); st.pop(); st.push(max(v1,v2)); } else st.push(stoll(s)); } if(st.top() == Y) cout << high << endl; else cout << "-1" << endl; } }