Q,Y = list(map(int,input().split())) S = input().split() def check(n): stack = [] for i in S: if(i == "+"): stack.append(stack.pop()+stack.pop()) elif(i == "min"): stack.append(min(stack.pop(),stack.pop())) elif(i == "max"): stack.append(max(stack.pop(),stack.pop())) elif(i == "X"): stack.append(n) else: stack.append(int(i)) return stack[0] >= Y def last_check(n): stack = [] for i in S: if(i == "+"): stack.append(stack.pop()+stack.pop()) elif(i == "min"): stack.append(min(stack.pop(),stack.pop())) elif(i == "max"): stack.append(max(stack.pop(),stack.pop())) elif(i == "X"): stack.append(n) else: stack.append(int(i)) return stack[0] == Y ng,ok = -1,10**18 while(ok - ng > 1): mid = (ok+ng)//2 if(check(mid)): ok = mid else: ng = mid print(ok if last_check(ok) else -1)