You are given a list of positive integers along with a sequence of operations from the set {∗,+}.You construct expressions from these two lists so that:

- The numbers in the expression are drawn from the first list, without repetition and without altering their order.
- All the operators in the second list are used in the expression, in the same order.

For example, if the two lists are [1,3,2,1,4] and [′∗′,′+′] the set of possible expressions you can form are

1∗3+2,1∗3+1,1∗3+4,1∗2+1,1∗2+4,...,2∗1+4,1∗3+2,1∗3+1,1∗3+4,1∗2+1,1∗2+4,...,2∗1+4

For each expression, the value is computed by bracketing operators from the right. That is, the expressions above are evaluated as

1∗(3+2), 1∗(3+1), 1∗(3+4), 1∗(2+1), 1∗(2+4),…,2∗(1+4), 1∗(3+2), 1∗(3+1), 1∗(3+4), 1∗(2+1), 1∗(2+4),…,2∗(1+4)

The aim is to determine maximum value among these expressions. In this example, the maximum value is 18, from the expression 3*2+4, which is evaluated as 3∗(2+4) = 3*6 =18.

You may assume that the length of the first list is more than the length of the second list.

Describe an algorithm to solve this problem.