[TASK]
You will be given four numbers and a target number, your task is to find a way to use all four numbers exactly once, along with the basic operations (+, -, *, /), to reach the target number.

[RULES]
- You can use each number exactly once.
- You can use the four basic operations (+, -, *, /).
- The intermediate results must be integers (no decimals allowed).
- The intermediate results must be positive.
- The intermediate results will not exceed 2000.

[APPROACH]
We will solve the problem by searching. Starting from a given set of four numbers, we will follow this search process:
- At each state, we will consider all possible number pairs (in order) from the current number set. Choose one pair and apply one of the four basic operations to them to obtain a new number.
  * If there are still numbers left, we will add the new number to the number set and continue the search.
  * If we have used all numbers, we will check if the new number is equal to the target number. If it is, we have found the solution. Otherwise, we will backtrack.
- Suppose the two numbers we choose are a and b (where a >= b). We will try the four options (a + b), (a - b), (a * b), (a / b) to obtain the new number. Remember to always use the larger number as the first operand.
- If the new number is a decimal, or exceeds the maximum intermediate result, we will discard this branch and backtrack.
- We will continue this process until we reach the target number with four numbers used or exhaust all possible combinations.

[EXAMPLES]
# Example
Numbers: [40, 19, 23, 7]
Target: 29

# Search Procedure
Initial number set: [40, 19, 23, 7], target: 29. Options for choosing two numbers: [(40, 19), (40, 23), (40, 7), (19, 23), (19, 7), (23, 7)].
 |- Pick two numbers (40, 19) (numbers left: [23, 7]). Try possible operations.
  |- Try 40 + 19 = 59. Add 59 to the number set. Current number set: [59, 23, 7], target: 29. Options for choosing two numbers: [(59, 23), (59, 7), (23, 7)].
   |- Pick two numbers (59, 23) (numbers left: [7]). Try possible operations.
    |- Try 59 + 23 = 82. Add 82 to the number set. Current number set: [82, 7], target: 29, just two numbers left.
     |- Try 82 + 7 = 89. Evaluate 89 != 29, drop this branch.
     |- Try 82 - 7 = 75. Evaluate 75 != 29, drop this branch.
     |- Try 82 * 7 = 574. Evaluate 574 != 29, drop this branch.
     |- Try 82 / 7 = 11.7. 11.7 is a decimal, drop this branch.
    |- Try 59 - 23 = 36. Add 36 to the number set. Current number set: [36, 7], target: 29, just two numbers left.
     |- Try 36 + 7 = 43. Evaluate 43 != 29, drop this branch.
     |- Try 36 - 7 = 29. Evaluate 29 == 29, target found!

Now we have found the target, let's trace back the solution:
Final step: 36 - 7 = 29
The step before: 59 - 23 = 36
The first step: 40 + 19 = 59

Output the solution in the required format:
<Solution>
40 + 19 = 59
59 - 23 = 36
36 - 7 = 29
</Solution>

# Example
Numbers: [9, 16, 6, 18]
Target: 12

# Search Procedure
Initial number set: [9, 16, 6, 18], target: 12. Options for choosing two numbers: [(9, 16), (9, 6), (9, 18), (16, 6), (16, 18), (6, 18)].
 |- Pick two numbers (9, 16) (numbers left: [6, 18]). Try possible operations.
  |- Try 16 + 9 = 25. Add 25 to the number set. Current number set: [25, 6, 18], target: 12. Options for choosing two numbers: [(25, 6), (25, 18), (6, 18)].
   |- Pick two numbers (25, 6) (numbers left: [18]). Try possible operations.
    |- Try 25 + 6 = 31. Add 31 to the number set. Current number set: [31, 18], target: 12, just two numbers left.
     |- Try 31 + 18 = 49. Evaluate 49 != 12, drop this branch.
     |- Try 31 - 18 = 13. Evaluate 13 != 12, drop this branch.
     |- Try 31 * 18 = 558. Evaluate 558 != 12, drop this branch.
     |- Try 31 / 18 = 1.7. 1.7 is a decimal, drop this branch.
    |- Try 25 - 6 = 19. Add 19 to the number set. Current number set: [19, 18], target: 12, just two numbers left.
     |- Try 19 + 18 = 37. Evaluate 37 != 12, drop this branch.
     |- Try 19 - 18 = 1. Evaluate 1 != 12, drop this branch.
     |- Try 19 * 18 = 342. Evaluate 342 != 12, drop this branch.
     |- Try 19 / 18 = 1.1. 1.1 is a decimal, drop this branch.
    |- Try 25 * 6 = 150. Add 150 to the number set. Current number set: [150, 18], target: 12, just two numbers left.
     |- Try 150 + 18 = 168. Evaluate 168 != 12, drop this branch.
     |- Try 150 - 18 = 132. Evaluate 132 != 12, drop this branch.
     |- Try 150 * 18 = 2700. 2700 exceeds the maximum intermediate result, drop this branch.
     |- Try 150 / 18 = 8.3. 8.3 is a decimal, drop this branch.
    |- Try 25 / 6 = 4.2. 4.2 is a decimal, drop this branch.
   |- Pick two numbers (25, 18) (numbers left: [6]). Try possible operations.
    |- Try 25 + 18 = 43. Add 43 to the number set. Current number set: [43, 6], target: 12, just two numbers left.
     |- Try 43 + 6 = 49. Evaluate 49 != 12, drop this branch.
     |- Try 43 - 6 = 37. Evaluate 37 != 12, drop this branch.
     |- Try 43 * 6 = 258. Evaluate 258 != 12, drop this branch.
     |- Try 43 / 6 = 7.2. 7.2 is a decimal, drop this branch.
    |- Try 25 - 18 = 7. Add 7 to the number set. Current number set: [7, 6], target: 12, just two numbers left.
     |- Try 7 + 6 = 13. Evaluate 13 != 12, drop this branch.
     |- Try 7 - 6 = 1. Evaluate 1 != 12, drop this branch.
     |- Try 7 * 6 = 42. Evaluate 42 != 12, drop this branch.
     |- Try 7 / 6 = 1.2. 1.2 is a decimal, drop this branch.
    |- Try 25 * 18 = 450. Add 450 to the number set. Current number set: [450, 6], target: 12, just two numbers left.
     |- Try 450 + 6 = 456. Evaluate 456 != 12, drop this branch.
     |- Try 450 - 6 = 444. Evaluate 444 != 12, drop this branch.
     |- Try 450 * 6 = 2700. 2700 exceeds the maximum intermediate result, drop this branch.
     |- Try 450 / 6 = 75. Evaluate 75 != 12, drop this branch.
    |- Try 25 / 18 = 1.4. 1.4 is a decimal, drop this branch.
   |- Pick two numbers (6, 18) (numbers left: [25]). Try possible operations.
    |- Try 18 + 6 = 24. Add 24 to the number set. Current number set: [24, 25], target: 12, just two numbers left.
     |- Try 25 + 24 = 49. Evaluate 49 != 12, drop this branch.
     |- Try 25 - 24 = 1. Evaluate 1 != 12, drop this branch.
     |- Try 25 * 24 = 600. Evaluate 600 != 12, drop this branch.
     |- Try 25 / 24 = 1.0. 1.0 is a decimal, drop this branch.
    |- Try 18 - 6 = 12. Add 12 to the number set. Current number set: [12, 25], target: 12, just two numbers left.
     |- Try 25 + 12 = 37. Evaluate 37 != 12, drop this branch.
     |- Try 25 - 12 = 13. Evaluate 13 != 12, drop this branch.
     |- Try 25 * 12 = 300. Evaluate 300 != 12, drop this branch.
     |- Try 25 / 12 = 2.1. 2.1 is a decimal, drop this branch.
    |- Try 18 * 6 = 108. Add 108 to the number set. Current number set: [108, 25], target: 12, just two numbers left.
     |- Try 108 + 25 = 133. Evaluate 133 != 12, drop this branch.
     |- Try 108 - 25 = 83. Evaluate 83 != 12, drop this branch.
     |- Try 108 * 25 = 2700. 2700 exceeds the maximum intermediate result, drop this branch.
     |- Try 108 / 25 = 4.3. 4.3 is a decimal, drop this branch.
    |- Try 18 / 6 = 3. Add 3 to the number set. Current number set: [3, 25], target: 12, just two numbers left.
     |- Try 25 + 3 = 28. Evaluate 28 != 12, drop this branch.
     |- Try 25 - 3 = 22. Evaluate 22 != 12, drop this branch.
     |- Try 25 * 3 = 75. Evaluate 75 != 12, drop this branch.
     |- Try 25 / 3 = 8.3. 8.3 is a decimal, drop this branch.
  |- Try 16 - 9 = 7. Add 7 to the number set. Current number set: [7, 6, 18], target: 12. Options for choosing two numbers: [(7, 6), (7, 18), (6, 18)].
   |- Pick two numbers (7, 6) (numbers left: [18]). Try possible operations.
    |- Try 7 + 6 = 13. Add 13 to the number set. Current number set: [13, 18], target: 12, just two numbers left.
     |- Try 18 + 13 = 31. Evaluate 31 != 12, drop this branch.
     |- Try 18 - 13 = 5. Evaluate 5 != 12, drop this branch.
     |- Try 18 * 13 = 234. Evaluate 234 != 12, drop this branch.
     |- Try 18 / 13 = 1.4. 1.4 is a decimal, drop this branch.
    |- Try 7 - 6 = 1. Add 1 to the number set. Current number set: [1, 18], target: 12, just two numbers left.
     |- Try 18 + 1 = 19. Evaluate 19 != 12, drop this branch.
     |- Try 18 - 1 = 17. Evaluate 17 != 12, drop this branch.
     |- Try 18 * 1 = 18. Evaluate 18 != 12, drop this branch.
     |- Try 18 / 1 = 18. Evaluate 18 != 12, drop this branch.
    |- Try 7 * 6 = 42. Add 42 to the number set. Current number set: [42, 18], target: 12, just two numbers left.
     |- Try 42 + 18 = 60. Evaluate 60 != 12, drop this branch.
     |- Try 42 - 18 = 24. Evaluate 24 != 12, drop this branch.
     |- Try 42 * 18 = 756. Evaluate 756 != 12, drop this branch.
     |- Try 42 / 18 = 2.3. 2.3 is a decimal, drop this branch.
    |- Try 7 / 6 = 1.2. 1.2 is a decimal, drop this branch.
   |- Pick two numbers (7, 18) (numbers left: [6]). Try possible operations.
    |- Try 18 + 7 = 25. Add 25 to the number set. Current number set: [25, 6], target: 12, just two numbers left.
     |- Try 25 + 6 = 31. Evaluate 31 != 12, drop this branch.
     |- Try 25 - 6 = 19. Evaluate 19 != 12, drop this branch.
     |- Try 25 * 6 = 150. Evaluate 150 != 12, drop this branch.
     |- Try 25 / 6 = 4.2. 4.2 is a decimal, drop this branch.
    |- Try 18 - 7 = 11. Add 11 to the number set. Current number set: [11, 6], target: 12, just two numbers left.
     |- Try 11 + 6 = 17. Evaluate 17 != 12, drop this branch.
     |- Try 11 - 6 = 5. Evaluate 5 != 12, drop this branch.
     |- Try 11 * 6 = 66. Evaluate 66 != 12, drop this branch.
     |- Try 11 / 6 = 1.8. 1.8 is a decimal, drop this branch.
    |- Try 18 * 7 = 126. Add 126 to the number set. Current number set: [126, 6], target: 12, just two numbers left.
     |- Try 126 + 6 = 132. Evaluate 132 != 12, drop this branch.
     |- Try 126 - 6 = 120. Evaluate 120 != 12, drop this branch.
     |- Try 126 * 6 = 756. Evaluate 756 != 12, drop this branch.
     |- Try 126 / 6 = 21. Evaluate 21 != 12, drop this branch.
    |- Try 18 / 7 = 2.6. 2.6 is a decimal, drop this branch.
   |- Pick two numbers (6, 18) (numbers left: [7]). Try possible operations.
    |- Try 18 + 6 = 24. Add 24 to the number set. Current number set: [24, 7], target: 12, just two numbers left.
     |- Try 24 + 7 = 31. Evaluate 31 != 12, drop this branch.
     |- Try 24 - 7 = 17. Evaluate 17 != 12, drop this branch.
     |- Try 24 * 7 = 168. Evaluate 168 != 12, drop this branch.
     |- Try 24 / 7 = 3.4. 3.4 is a decimal, drop this branch.
    |- Try 18 - 6 = 12. Add 12 to the number set. Current number set: [12, 7], target: 12, just two numbers left.
     |- Try 12 + 7 = 19. Evaluate 19 != 12, drop this branch.
     |- Try 12 - 7 = 5. Evaluate 5 != 12, drop this branch.
     |- Try 12 * 7 = 84. Evaluate 84 != 12, drop this branch.
     |- Try 12 / 7 = 1.7. 1.7 is a decimal, drop this branch.
    |- Try 18 * 6 = 108. Add 108 to the number set. Current number set: [108, 7], target: 12, just two numbers left.
     |- Try 108 + 7 = 115. Evaluate 115 != 12, drop this branch.
     |- Try 108 - 7 = 101. Evaluate 101 != 12, drop this branch.
     |- Try 108 * 7 = 756. Evaluate 756 != 12, drop this branch.
     |- Try 108 / 7 = 15.4. 15.4 is a decimal, drop this branch.
    |- Try 18 / 6 = 3. Add 3 to the number set. Current number set: [3, 7], target: 12, just two numbers left.
     |- Try 7 + 3 = 10. Evaluate 10 != 12, drop this branch.
     |- Try 7 - 3 = 4. Evaluate 4 != 12, drop this branch.
     |- Try 7 * 3 = 21. Evaluate 21 != 12, drop this branch.
     |- Try 7 / 3 = 2.3. 2.3 is a decimal, drop this branch.
  |- Try 16 * 9 = 144. Add 144 to the number set. Current number set: [144, 6, 18], target: 12. Options for choosing two numbers: [(144, 6), (144, 18), (6, 18)].
   |- Pick two numbers (144, 6) (numbers left: [18]). Try possible operations.
    |- Try 144 + 6 = 150. Add 150 to the number set. Current number set: [150, 18], target: 12, just two numbers left.
     |- Try 150 + 18 = 168. Evaluate 168 != 12, drop this branch.
     |- Try 150 - 18 = 132. Evaluate 132 != 12, drop this branch.
     |- Try 150 * 18 = 2700. 2700 exceeds the maximum intermediate result, drop this branch.
     |- Try 150 / 18 = 8.3. 8.3 is a decimal, drop this branch.
    |- Try 144 - 6 = 138. Add 138 to the number set. Current number set: [138, 18], target: 12, just two numbers left.
     |- Try 138 + 18 = 156. Evaluate 156 != 12, drop this branch.
     |- Try 138 - 18 = 120. Evaluate 120 != 12, drop this branch.
     |- Try 138 * 18 = 2484. 2484 exceeds the maximum intermediate result, drop this branch.
     |- Try 138 / 18 = 7.7. 7.7 is a decimal, drop this branch.
    |- Try 144 * 6 = 864. Add 864 to the number set. Current number set: [864, 18], target: 12, just two numbers left.
     |- Try 864 + 18 = 882. Evaluate 882 != 12, drop this branch.
     |- Try 864 - 18 = 846. Evaluate 846 != 12, drop this branch.
     |- Try 864 * 18 = 15552. 15552 exceeds the maximum intermediate result, drop this branch.
     |- Try 864 / 18 = 48. Evaluate 48 != 12, drop this branch.
    |- Try 144 / 6 = 24. Add 24 to the number set. Current number set: [24, 18], target: 12, just two numbers left.
     |- Try 24 + 18 = 42. Evaluate 42 != 12, drop this branch.
     |- Try 24 - 18 = 6. Evaluate 6 != 12, drop this branch.
     |- Try 24 * 18 = 432. Evaluate 432 != 12, drop this branch.
     |- Try 24 / 18 = 1.3. 1.3 is a decimal, drop this branch.
   |- Pick two numbers (144, 18) (numbers left: [6]). Try possible operations.
    |- Try 144 + 18 = 162. Add 162 to the number set. Current number set: [162, 6], target: 12, just two numbers left.
     |- Try 162 + 6 = 168. Evaluate 168 != 12, drop this branch.
     |- Try 162 - 6 = 156. Evaluate 156 != 12, drop this branch.
     |- Try 162 * 6 = 972. Evaluate 972 != 12, drop this branch.
     |- Try 162 / 6 = 27. Evaluate 27 != 12, drop this branch.
    |- Try 144 - 18 = 126. Add 126 to the number set. Current number set: [126, 6], target: 12, just two numbers left.
     |- Try 126 + 6 = 132. Evaluate 132 != 12, drop this branch.
     |- Try 126 - 6 = 120. Evaluate 120 != 12, drop this branch.
     |- Try 126 * 6 = 756. Evaluate 756 != 12, drop this branch.
     |- Try 126 / 6 = 21. Evaluate 21 != 12, drop this branch.
    |- Try 144 * 18 = 2592. 2592 exceeds the maximum intermediate result, drop this branch.
    |- Try 144 / 18 = 8. Add 8 to the number set. Current number set: [8, 6], target: 12, just two numbers left.
     |- Try 8 + 6 = 14. Evaluate 14 != 12, drop this branch.
     |- Try 8 - 6 = 2. Evaluate 2 != 12, drop this branch.
     |- Try 8 * 6 = 48. Evaluate 48 != 12, drop this branch.
     |- Try 8 / 6 = 1.3. 1.3 is a decimal, drop this branch.
   |- Pick two numbers (6, 18) (numbers left: [144]). Try possible operations.
    |- Try 18 + 6 = 24. Add 24 to the number set. Current number set: [24, 144], target: 12, just two numbers left.
     |- Try 144 + 24 = 168. Evaluate 168 != 12, drop this branch.
     |- Try 144 - 24 = 120. Evaluate 120 != 12, drop this branch.
     |- Try 144 * 24 = 3456. 3456 exceeds the maximum intermediate result, drop this branch.
     |- Try 144 / 24 = 6. Evaluate 6 != 12, drop this branch.
    |- Try 18 - 6 = 12. Add 12 to the number set. Current number set: [12, 144], target: 12, just two numbers left.
     |- Try 144 + 12 = 156. Evaluate 156 != 12, drop this branch.
     |- Try 144 - 12 = 132. Evaluate 132 != 12, drop this branch.
     |- Try 144 * 12 = 1728. Evaluate 1728 != 12, drop this branch.
     |- Try 144 / 12 = 12. Evaluate 12 == 12, target found!

Now we have found the target, let's trace back the solution:
Final step: 144 / 12 = 12
The step before: 18 - 6 = 12
The first step: 16 * 9 = 144

Output the solution in the required format:
<Solution>
16 * 9 = 144
18 - 6 = 12
144 / 12 = 12
</Solution>

[Problem]
Now, solve the following problem. Note that:
- Please carefully read the approach and examples provided above, and follow them to solve the problem.
- Please ALWAYS include your search procedure (after # Search Procedure). The search procedure should follow the format of the examples provided above.
- Please mark your answer with <Solution> and </Solution> tags. The solution should be a sequence of three equations exactly following the format of the examples above, with no additional text in between.

Numbers: [30, 28, 47, 38]
Target: 11

# Search Procedure
Initial number set: [30, 28, 47, 38], target: 11. Options for choosing two numbers: [(30, 28), (30, 47), (30, 38), (28, 47), (28, 38), (47, 38)].
 |- Pick two numbers (30, 28) (numbers left: [47, 38]). Try possible operations.
  |- Try 30 + 28 = 58. Add 58 to the number set. Current number set: [58, 47, 38], target: 11. Options for choosing two numbers: [(58, 47), (58, 38), (47, 38)].
   |- Pick two numbers (58, 47) (numbers left: [38]). Try possible operations.
    |- Try 58 + 47 = 105. Add 105 to the number set. Current number set: [105, 38], target: 11, just two numbers left.
     |- Try 105 + 38 = 143. Evaluate 143 != 11, drop this branch.
     |- Try 105 - 38 = 67. Evaluate 67 != 11, drop this branch.
     |- Try 105 * 38 = 3990. 3990 exceeds the maximum intermediate result, drop this branch.
     |- Try 105 / 38 = 2.8. 2.8 is a decimal, drop this branch.
    |- Try 58 - 47 = 11. Add 11 to the number set. Current number set: [11, 38], target: 11, just two numbers left.
     |- Try 38 + 11 = 49. Evaluate 49 != 11, drop this branch.
     |- Try 38 - 11 = 27. Evaluate 27 != 11, drop this branch.
     |- Try 38 * 11 = 418. Evaluate 418 != 11, drop this branch.
     |- Try 38 / 11 = 3.5. 3.5 is a decimal, drop this branch.
    |- Try 58 * 47 = 2726. 2726 exceeds the maximum intermediate result, drop this branch.
    |- Try 58 / 47 = 1.2. 1.2 is a decimal, drop this branch.
   |- Pick two numbers (58, 38) (numbers left: [47]). Try possible operations.
    |- Try 58 + 38 = 96. Add 96 to the number set. Current number set: [96, 47], target: 11, just two numbers left.
     |- Try 96 + 47 = 143. Evaluate 143 != 11, drop this branch.
     |- Try 96 - 47 = 49. Evaluate 49 != 11, drop this branch.
     |- Try 96 * 47 = 4512. 4512 exceeds the maximum intermediate result, drop this branch.
     |- Try 96 / 47 = 2.0. 2.0 is a decimal, drop this branch.
    |- Try 58 - 38 = 20. Add 20 to the number set. Current number set: [20, 47], target: 11, just two numbers left.
     |- Try 47 + 20 = 67. Evaluate 67 != 11, drop this branch.
     |- Try 47 - 20 = 27. Evaluate 27 != 11, drop this branch.
     |- Try 47 * 20 = 940. Evaluate 940 != 11, drop this branch.
     |- Try 47 / 20 = 2.4. 2.4 is a decimal, drop this branch.
    |- Try 58 * 38 = 2204. 2204 exceeds the maximum intermediate result, drop this branch.
    |- Try 58 / 38 = 1.5. 1.5 is a decimal, drop this branch.
   |- Pick two numbers (47, 38) (numbers left: [58]). Try possible operations.
    |- Try 47 + 38 = 85. Add 85 to the number set. Current number set: [85, 58], target: 11, just two numbers left.
     |- Try 85 + 58 = 143. Evaluate 143 != 11, drop this branch.
     |- Try 85 - 58 = 27. Evaluate 27 != 11, drop this branch.
     |- Try 85 * 58 = 4930. 4930 exceeds the maximum intermediate result, drop this branch.
     |- Try 85 / 58 = 1.5. 1.5 is a decimal, drop this branch.
    |- Try 47 - 38 = 9. Add 9 to the number set. Current number set: [9, 58], target: 11, just two numbers left.
     |- Try 58 + 9 = 67. Evaluate 67 != 11, drop this branch.
     |- Try 58 - 9 = 49. Evaluate 49 != 11, drop this branch.
     |- Try 58 * 9 = 522. Evaluate 522 != 11, drop this branch.
     |- Try 58 / 9 = 6.4. 6.4 is a decimal, drop this branch.
    |- Try 47 * 38 = 1786. Add 1786 to the number set. Current number set: [1786, 58], target: 11, just two numbers left.
     |- Try 1786 + 58 = 1844. Evaluate 1844 != 11, drop this branch.
     |- Try 1786 - 58 = 1728. Evaluate 1728 != 11, drop this branch.
     |- Try 1786 * 58 = 103588. 103588 exceeds the maximum intermediate result, drop this branch.
     |- Try 1786 / 58 = 30.8. 30.8 is a decimal, drop this branch.
    |- Try 47 / 38 = 1.2. 1.2 is a decimal, drop this branch.
  |- Try 30 - 28 = 2. Add 2 to the number set. Current number set: [2, 47, 38], target: 11. Options for choosing two numbers: [(2, 47), (2, 38), (47, 38)].
   |- Pick two numbers (2, 47) (numbers left: [38]). Try possible operations.
    |- Try 47 + 2 = 49. Add 49 to the number set. Current number set: [49, 38], target: 11, just two numbers left.
     |- Try 49 + 38 = 87. Evaluate 87 != 11, drop this branch.
     |- Try 49 - 38 = 11. Evaluate 11 == 11, target found!

Now we have found the target, let's trace back the solution:
Final step: 49 - 38 = 11
The step before: 47 + 2 = 49
The first step: 30 - 28 = 2

Output the solution in the required format:
<Solution>
30 - 28 = 2
47 + 2 = 49
49 - 38 = 11
</Solution>

Solution:
30 - 28 = 2
47 + 2 = 49
49 - 38 = 11


[TASK]
You will be given four numbers and a target number, your task is to find a way to use all four numbers exactly once, along with the basic operations (+, -, *, /), to reach the target number.

[RULES]
- You can use each number exactly once.
- You can use the four basic operations (+, -, *, /).
- The intermediate results must be integers (no decimals allowed).
- The intermediate results must be positive.
- The intermediate results will not exceed 2000.

[APPROACH]
We will solve the problem by searching. Starting from a given set of four numbers, we will follow this search process:
- At each state, we will consider all possible number pairs (in order) from the current number set. Choose one pair and apply one of the four basic operations to them to obtain a new number.
  * If there are still numbers left, we will add the new number to the number set and continue the search.
  * If we have used all numbers, we will check if the new number is equal to the target number. If it is, we have found the solution. Otherwise, we will backtrack.
- Suppose the two numbers we choose are a and b (where a >= b). We will try the four options (a + b), (a - b), (a * b), (a / b) to obtain the new number. Remember to always use the larger number as the first operand.
- If the new number is a decimal, or exceeds the maximum intermediate result, we will discard this branch and backtrack.
- We will continue this process until we reach the target number with four numbers used or exhaust all possible combinations.

[EXAMPLES]
# Example
Numbers: [40, 19, 23, 7]
Target: 29

# Search Procedure
Initial number set: [40, 19, 23, 7], target: 29. Options for choosing two numbers: [(40, 19), (40, 23), (40, 7), (19, 23), (19, 7), (23, 7)].
 |- Pick two numbers (40, 19) (numbers left: [23, 7]). Try possible operations.
  |- Try 40 + 19 = 59. Add 59 to the number set. Current number set: [59, 23, 7], target: 29. Options for choosing two numbers: [(59, 23), (59, 7), (23, 7)].
   |- Pick two numbers (59, 23) (numbers left: [7]). Try possible operations.
    |- Try 59 + 23 = 82. Add 82 to the number set. Current number set: [82, 7], target: 29, just two numbers left.
     |- Try 82 + 7 = 89. Evaluate 89 != 29, drop this branch.
     |- Try 82 - 7 = 75. Evaluate 75 != 29, drop this branch.
     |- Try 82 * 7 = 574. Evaluate 574 != 29, drop this branch.
     |- Try 82 / 7 = 11.7. 11.7 is a decimal, drop this branch.
    |- Try 59 - 23 = 36. Add 36 to the number set. Current number set: [36, 7], target: 29, just two numbers left.
     |- Try 36 + 7 = 43. Evaluate 43 != 29, drop this branch.
     |- Try 36 - 7 = 29. Evaluate 29 == 29, target found!

Now we have found the target, let's trace back the solution:
Final step: 36 - 7 = 29
The step before: 59 - 23 = 36
The first step: 40 + 19 = 59

Output the solution in the required format:
<Solution>
40 + 19 = 59
59 - 23 = 36
36 - 7 = 29
</Solution>

# Example
Numbers: [9, 16, 6, 18]
Target: 12

# Search Procedure
Initial number set: [9, 16, 6, 18], target: 12. Options for choosing two numbers: [(9, 16), (9, 6), (9, 18), (16, 6), (16, 18), (6, 18)].
 |- Pick two numbers (9, 16) (numbers left: [6, 18]). Try possible operations.
  |- Try 16 + 9 = 25. Add 25 to the number set. Current number set: [25, 6, 18], target: 12. Options for choosing two numbers: [(25, 6), (25, 18), (6, 18)].
   |- Pick two numbers (25, 6) (numbers left: [18]). Try possible operations.
    |- Try 25 + 6 = 31. Add 31 to the number set. Current number set: [31, 18], target: 12, just two numbers left.
     |- Try 31 + 18 = 49. Evaluate 49 != 12, drop this branch.
     |- Try 31 - 18 = 13. Evaluate 13 != 12, drop this branch.
     |- Try 31 * 18 = 558. Evaluate 558 != 12, drop this branch.
     |- Try 31 / 18 = 1.7. 1.7 is a decimal, drop this branch.
    |- Try 25 - 6 = 19. Add 19 to the number set. Current number set: [19, 18], target: 12, just two numbers left.
     |- Try 19 + 18 = 37. Evaluate 37 != 12, drop this branch.
     |- Try 19 - 18 = 1. Evaluate 1 != 12, drop this branch.
     |- Try 19 * 18 = 342. Evaluate 342 != 12, drop this branch.
     |- Try 19 / 18 = 1.1. 1.1 is a decimal, drop this branch.
    |- Try 25 * 6 = 150. Add 150 to the number set. Current number set: [150, 18], target: 12, just two numbers left.
     |- Try 150 + 18 = 168. Evaluate 168 != 12, drop this branch.
     |- Try 150 - 18 = 132. Evaluate 132 != 12, drop this branch.
     |- Try 150 * 18 = 2700. 2700 exceeds the maximum intermediate result, drop this branch.
     |- Try 150 / 18 = 8.3. 8.3 is a decimal, drop this branch.
    |- Try 25 / 6 = 4.2. 4.2 is a decimal, drop this branch.
   |- Pick two numbers (25, 18) (numbers left: [6]). Try possible operations.
    |- Try 25 + 18 = 43. Add 43 to the number set. Current number set: [43, 6], target: 12, just two numbers left.
     |- Try 43 + 6 = 49. Evaluate 49 != 12, drop this branch.
     |- Try 43 - 6 = 37. Evaluate 37 != 12, drop this branch.
     |- Try 43 * 6 = 258. Evaluate 258 != 12, drop this branch.
     |- Try 43 / 6 = 7.2. 7.2 is a decimal, drop this branch.
    |- Try 25 - 18 = 7. Add 7 to the number set. Current number set: [7, 6], target: 12, just two numbers left.
     |- Try 7 + 6 = 13. Evaluate 13 != 12, drop this branch.
     |- Try 7 - 6 = 1. Evaluate 1 != 12, drop this branch.
     |- Try 7 * 6 = 42. Evaluate 42 != 12, drop this branch.
     |- Try 7 / 6 = 1.2. 1.2 is a decimal, drop this branch.
    |- Try 25 * 18 = 450. Add 450 to the number set. Current number set: [450, 6], target: 12, just two numbers left.
     |- Try 450 + 6 = 456. Evaluate 456 != 12, drop this branch.
     |- Try 450 - 6 = 444. Evaluate 444 != 12, drop this branch.
     |- Try 450 * 6 = 2700. 2700 exceeds the maximum intermediate result, drop this branch.
     |- Try 450 / 6 = 75. Evaluate 75 != 12, drop this branch.
    |- Try 25 / 18 = 1.4. 1.4 is a decimal, drop this branch.
   |- Pick two numbers (6, 18) (numbers left: [25]). Try possible operations.
    |- Try 18 + 6 = 24. Add 24 to the number set. Current number set: [24, 25], target: 12, just two numbers left.
     |- Try 25 + 24 = 49. Evaluate 49 != 12, drop this branch.
     |- Try 25 - 24 = 1. Evaluate 1 != 12, drop this branch.
     |- Try 25 * 24 = 600. Evaluate 600 != 12, drop this branch.
     |- Try 25 / 24 = 1.0. 1.0 is a decimal, drop this branch.
    |- Try 18 - 6 = 12. Add 12 to the number set. Current number set: [12, 25], target: 12, just two numbers left.
     |- Try 25 + 12 = 37. Evaluate 37 != 12, drop this branch.
     |- Try 25 - 12 = 13. Evaluate 13 != 12, drop this branch.
     |- Try 25 * 12 = 300. Evaluate 300 != 12, drop this branch.
     |- Try 25 / 12 = 2.1. 2.1 is a decimal, drop this branch.
    |- Try 18 * 6 = 108. Add 108 to the number set. Current number set: [108, 25], target: 12, just two numbers left.
     |- Try 108 + 25 = 133. Evaluate 133 != 12, drop this branch.
     |- Try 108 - 25 = 83. Evaluate 83 != 12, drop this branch.
     |- Try 108 * 25 = 2700. 2700 exceeds the maximum intermediate result, drop this branch.
     |- Try 108 / 25 = 4.3. 4.3 is a decimal, drop this branch.
    |- Try 18 / 6 = 3. Add 3 to the number set. Current number set: [3, 25], target: 12, just two numbers left.
     |- Try 25 + 3 = 28. Evaluate 28 != 12, drop this branch.
     |- Try 25 - 3 = 22. Evaluate 22 != 12, drop this branch.
     |- Try 25 * 3 = 75. Evaluate 75 != 12, drop this branch.
     |- Try 25 / 3 = 8.3. 8.3 is a decimal, drop this branch.
  |- Try 16 - 9 = 7. Add 7 to the number set. Current number set: [7, 6, 18], target: 12. Options for choosing two numbers: [(7, 6), (7, 18), (6, 18)].
   |- Pick two numbers (7, 6) (numbers left: [18]). Try possible operations.
    |- Try 7 + 6 = 13. Add 13 to the number set. Current number set: [13, 18], target: 12, just two numbers left.
     |- Try 18 + 13 = 31. Evaluate 31 != 12, drop this branch.
     |- Try 18 - 13 = 5. Evaluate 5 != 12, drop this branch.
     |- Try 18 * 13 = 234. Evaluate 234 != 12, drop this branch.
     |- Try 18 / 13 = 1.4. 1.4 is a decimal, drop this branch.
    |- Try 7 - 6 = 1. Add 1 to the number set. Current number set: [1, 18], target: 12, just two numbers left.
     |- Try 18 + 1 = 19. Evaluate 19 != 12, drop this branch.
     |- Try 18 - 1 = 17. Evaluate 17 != 12, drop this branch.
     |- Try 18 * 1 = 18. Evaluate 18 != 12, drop this branch.
     |- Try 18 / 1 = 18. Evaluate 18 != 12, drop this branch.
    |- Try 7 * 6 = 42. Add 42 to the number set. Current number set: [42, 18], target: 12, just two numbers left.
     |- Try 42 + 18 = 60. Evaluate 60 != 12, drop this branch.
     |- Try 42 - 18 = 24. Evaluate 24 != 12, drop this branch.
     |- Try 42 * 18 = 756. Evaluate 756 != 12, drop this branch.
     |- Try 42 / 18 = 2.3. 2.3 is a decimal, drop this branch.
    |- Try 7 / 6 = 1.2. 1.2 is a decimal, drop this branch.
   |- Pick two numbers (7, 18) (numbers left: [6]). Try possible operations.
    |- Try 18 + 7 = 25. Add 25 to the number set. Current number set: [25, 6], target: 12, just two numbers left.
     |- Try 25 + 6 = 31. Evaluate 31 != 12, drop this branch.
     |- Try 25 - 6 = 19. Evaluate 19 != 12, drop this branch.
     |- Try 25 * 6 = 150. Evaluate 150 != 12, drop this branch.
     |- Try 25 / 6 = 4.2. 4.2 is a decimal, drop this branch.
    |- Try 18 - 7 = 11. Add 11 to the number set. Current number set: [11, 6], target: 12, just two numbers left.
     |- Try 11 + 6 = 17. Evaluate 17 != 12, drop this branch.
     |- Try 11 - 6 = 5. Evaluate 5 != 12, drop this branch.
     |- Try 11 * 6 = 66. Evaluate 66 != 12, drop this branch.
     |- Try 11 / 6 = 1.8. 1.8 is a decimal, drop this branch.
    |- Try 18 * 7 = 126. Add 126 to the number set. Current number set: [126, 6], target: 12, just two numbers left.
     |- Try 126 + 6 = 132. Evaluate 132 != 12, drop this branch.
     |- Try 126 - 6 = 120. Evaluate 120 != 12, drop this branch.
     |- Try 126 * 6 = 756. Evaluate 756 != 12, drop this branch.
     |- Try 126 / 6 = 21. Evaluate 21 != 12, drop this branch.
    |- Try 18 / 7 = 2.6. 2.6 is a decimal, drop this branch.
   |- Pick two numbers (6, 18) (numbers left: [7]). Try possible operations.
    |- Try 18 + 6 = 24. Add 24 to the number set. Current number set: [24, 7], target: 12, just two numbers left.
     |- Try 24 + 7 = 31. Evaluate 31 != 12, drop this branch.
     |- Try 24 - 7 = 17. Evaluate 17 != 12, drop this branch.
     |- Try 24 * 7 = 168. Evaluate 168 != 12, drop this branch.
     |- Try 24 / 7 = 3.4. 3.4 is a decimal, drop this branch.
    |- Try 18 - 6 = 12. Add 12 to the number set. Current number set: [12, 7], target: 12, just two numbers left.
     |- Try 12 + 7 = 19. Evaluate 19 != 12, drop this branch.
     |- Try 12 - 7 = 5. Evaluate 5 != 12, drop this branch.
     |- Try 12 * 7 = 84. Evaluate 84 != 12, drop this branch.
     |- Try 12 / 7 = 1.7. 1.7 is a decimal, drop this branch.
    |- Try 18 * 6 = 108. Add 108 to the number set. Current number set: [108, 7], target: 12, just two numbers left.
     |- Try 108 + 7 = 115. Evaluate 115 != 12, drop this branch.
     |- Try 108 - 7 = 101. Evaluate 101 != 12, drop this branch.
     |- Try 108 * 7 = 756. Evaluate 756 != 12, drop this branch.
     |- Try 108 / 7 = 15.4. 15.4 is a decimal, drop this branch.
    |- Try 18 / 6 = 3. Add 3 to the number set. Current number set: [3, 7], target: 12, just two numbers left.
     |- Try 7 + 3 = 10. Evaluate 10 != 12, drop this branch.
     |- Try 7 - 3 = 4. Evaluate 4 != 12, drop this branch.
     |- Try 7 * 3 = 21. Evaluate 21 != 12, drop this branch.
     |- Try 7 / 3 = 2.3. 2.3 is a decimal, drop this branch.
  |- Try 16 * 9 = 144. Add 144 to the number set. Current number set: [144, 6, 18], target: 12. Options for choosing two numbers: [(144, 6), (144, 18), (6, 18)].
   |- Pick two numbers (144, 6) (numbers left: [18]). Try possible operations.
    |- Try 144 + 6 = 150. Add 150 to the number set. Current number set: [150, 18], target: 12, just two numbers left.
     |- Try 150 + 18 = 168. Evaluate 168 != 12, drop this branch.
     |- Try 150 - 18 = 132. Evaluate 132 != 12, drop this branch.
     |- Try 150 * 18 = 2700. 2700 exceeds the maximum intermediate result, drop this branch.
     |- Try 150 / 18 = 8.3. 8.3 is a decimal, drop this branch.
    |- Try 144 - 6 = 138. Add 138 to the number set. Current number set: [138, 18], target: 12, just two numbers left.
     |- Try 138 + 18 = 156. Evaluate 156 != 12, drop this branch.
     |- Try 138 - 18 = 120. Evaluate 120 != 12, drop this branch.
     |- Try 138 * 18 = 2484. 2484 exceeds the maximum intermediate result, drop this branch.
     |- Try 138 / 18 = 7.7. 7.7 is a decimal, drop this branch.
    |- Try 144 * 6 = 864. Add 864 to the number set. Current number set: [864, 18], target: 12, just two numbers left.
     |- Try 864 + 18 = 882. Evaluate 882 != 12, drop this branch.
     |- Try 864 - 18 = 846. Evaluate 846 != 12, drop this branch.
     |- Try 864 * 18 = 15552. 15552 exceeds the maximum intermediate result, drop this branch.
     |- Try 864 / 18 = 48. Evaluate 48 != 12, drop this branch.
    |- Try 144 / 6 = 24. Add 24 to the number set. Current number set: [24, 18], target: 12, just two numbers left.
     |- Try 24 + 18 = 42. Evaluate 42 != 12, drop this branch.
     |- Try 24 - 18 = 6. Evaluate 6 != 12, drop this branch.
     |- Try 24 * 18 = 432. Evaluate 432 != 12, drop this branch.
     |- Try 24 / 18 = 1.3. 1.3 is a decimal, drop this branch.
   |- Pick two numbers (144, 18) (numbers left: [6]). Try possible operations.
    |- Try 144 + 18 = 162. Add 162 to the number set. Current number set: [162, 6], target: 12, just two numbers left.
     |- Try 162 + 6 = 168. Evaluate 168 != 12, drop this branch.
     |- Try 162 - 6 = 156. Evaluate 156 != 12, drop this branch.
     |- Try 162 * 6 = 972. Evaluate 972 != 12, drop this branch.
     |- Try 162 / 6 = 27. Evaluate 27 != 12, drop this branch.
    |- Try 144 - 18 = 126. Add 126 to the number set. Current number set: [126, 6], target: 12, just two numbers left.
     |- Try 126 + 6 = 132. Evaluate 132 != 12, drop this branch.
     |- Try 126 - 6 = 120. Evaluate 120 != 12, drop this branch.
     |- Try 126 * 6 = 756. Evaluate 756 != 12, drop this branch.
     |- Try 126 / 6 = 21. Evaluate 21 != 12, drop this branch.
    |- Try 144 * 18 = 2592. 2592 exceeds the maximum intermediate result, drop this branch.
    |- Try 144 / 18 = 8. Add 8 to the number set. Current number set: [8, 6], target: 12, just two numbers left.
     |- Try 8 + 6 = 14. Evaluate 14 != 12, drop this branch.
     |- Try 8 - 6 = 2. Evaluate 2 != 12, drop this branch.
     |- Try 8 * 6 = 48. Evaluate 48 != 12, drop this branch.
     |- Try 8 / 6 = 1.3. 1.3 is a decimal, drop this branch.
   |- Pick two numbers (6, 18) (numbers left: [144]). Try possible operations.
    |- Try 18 + 6 = 24. Add 24 to the number set. Current number set: [24, 144], target: 12, just two numbers left.
     |- Try 144 + 24 = 168. Evaluate 168 != 12, drop this branch.
     |- Try 144 - 24 = 120. Evaluate 120 != 12, drop this branch.
     |- Try 144 * 24 = 3456. 3456 exceeds the maximum intermediate result, drop this branch.
     |- Try 144 / 24 = 6. Evaluate 6 != 12, drop this branch.
    |- Try 18 - 6 = 12. Add 12 to the number set. Current number set: [12, 144], target: 12, just two numbers left.
     |- Try 144 + 12 = 156. Evaluate 156 != 12, drop this branch.
     |- Try 144 - 12 = 132. Evaluate 132 != 12, drop this branch.
     |- Try 144 * 12 = 1728. Evaluate 1728 != 12, drop this branch.
     |- Try 144 / 12 = 12. Evaluate 12 == 12, target found!

Now we have found the target, let's trace back the solution:
Final step: 144 / 12 = 12
The step before: 18 - 6 = 12
The first step: 16 * 9 = 144

Output the solution in the required format:
<Solution>
16 * 9 = 144
18 - 6 = 12
144 / 12 = 12
</Solution>

[Problem]
Now, solve the following problem. Note that:
- Please carefully read the approach and examples provided above, and follow them to solve the problem.
- Please ALWAYS include your search procedure (after # Search Procedure). The search procedure should follow the format of the examples provided above.
- Please mark your answer with <Solution> and </Solution> tags. The solution should be a sequence of three equations exactly following the format of the examples above, with no additional text in between.

Numbers: [19, 3, 15, 19]
Target: 50

# Search Procedure
Initial number set: [19, 3, 15, 19], target: 50. Options for choosing two numbers: [(19, 3), (19, 15), (19, 19), (3, 15), (3, 19), (15, 19)].
 |- Pick two numbers (19, 3) (numbers left: [15, 19]). Try possible operations.
  |- Try 19 + 3 = 22. Add 22 to the number set. Current number set: [22, 15, 19], target: 50. Options for choosing two numbers: [(22, 15), (22, 19), (15, 19)].
   |- Pick two numbers (22, 15) (numbers left: [19]). Try possible operations.
    |- Try 22 + 15 = 37. Add 37 to the number set. Current number set: [37, 19], target: 50, just two numbers left.
     |- Try 37 + 19 = 56. Evaluate 56 != 50, drop this branch.
     |- Try 37 - 19 = 18. Evaluate 18 != 50, drop this branch.
     |- Try 37 * 19 = 703. Evaluate 703 != 50, drop this branch.
     |- Try 37 / 19 = 1.9. 1.9 is a decimal, drop this branch.
    |- Try 22 - 15 = 7. Add 7 to the number set. Current number set: [7, 19], target: 50, just two numbers left.
     |- Try 19 + 7 = 26. Evaluate 26 != 50, drop this branch.
     |- Try 19 - 7 = 12. Evaluate 12 != 50, drop this branch.
     |- Try 19 * 7 = 133. Evaluate 133 != 50, drop this branch.
     |- Try 19 / 7 = 2.7. 2.7 is a decimal, drop this branch.
    |- Try 22 * 15 = 330. Add 330 to the number set. Current number set: [330, 19], target: 50, just two numbers left.
     |- Try 330 + 19 = 349. Evaluate 349 != 50, drop this branch.
     |- Try 330 - 19 = 311. Evaluate 311 != 50, drop this branch.
     |- Try 330 * 19 = 6270. 6270 exceeds the maximum intermediate result, drop this branch.
     |- Try 330 / 19 = 17.4. 17.4 is a decimal, drop this branch.
    |- Try 22 / 15 = 1.5. 1.5 is a decimal, drop this branch.
   |- Pick two numbers (22, 19) (numbers left: [15]). Try possible operations.
    |- Try 22 + 19 = 41. Add 41 to the number set. Current number set: [41, 15], target: 50, just two numbers left.
     |- Try 41 + 15 = 56. Evaluate 56 != 50, drop this branch.
     |- Try 41 - 15 = 26. Evaluate 26 != 50, drop this branch.
     |- Try 41 * 15 = 615. Evaluate 615 != 50, drop this branch.
     |- Try 41 / 15 = 2.7. 2.7 is a decimal, drop this branch.
    |- Try 22 - 19 = 3. Add 3 to the number set. Current number set: [3, 15], target: 50, just two numbers left.
     |- Try 15 + 3 = 18. Evaluate 18 != 50, drop this branch.
     |- Try 15 - 3 = 12. Evaluate 12 != 50, drop this branch.
     |- Try 15 * 3 = 45. Evaluate 45 != 50, drop this branch.
     |- Try 15 / 3 = 5. Evaluate 5 != 50, drop this branch.
    |- Try 22 * 19 = 418. Add 418 to the number set. Current number set: [418, 15], target: 50, just two numbers left.
     |- Try 418 + 15 = 433. Evaluate 433 != 50, drop this branch.
     |- Try 418 - 15 = 403. Evaluate 403 != 50, drop this branch.
     |- Try 418 * 15 = 6270. 6270 exceeds the maximum intermediate result, drop this branch.
     |- Try 418 / 15 = 27.9. 27.9 is a decimal, drop this branch.
    |- Try 22 / 19 = 1.2. 1.2 is a decimal, drop this branch.
   |- Pick two numbers (15, 19) (numbers left: [22]). Try possible operations.
    |- Try 19 + 15 = 34. Add 34 to the number set. Current number set: [34, 22], target: 50, just two numbers left.
     |- Try 34 + 22 = 56. Evaluate 56 != 50, drop this branch.
     |- Try 34 - 22 = 12. Evaluate 12 != 50, drop this branch.
     |- Try 34 * 22 = 748. Evaluate 748 != 50, drop this branch.
     |- Try 34 / 22 = 1.5. 1.5 is a decimal, drop this branch.
    |- Try 19 - 15 = 4. Add 4 to the number set. Current number set: [4, 22], target: 50, just two numbers left.
     |- Try 22 + 4 = 26. Evaluate 26 != 50, drop this branch.
     |- Try 22 - 4 = 18. Evaluate 18 != 50, drop this branch.
     |- Try 22 * 4 = 88. Evaluate 88 != 50, drop this branch.
     |- Try 22 / 4 = 5.5. 5.5 is a decimal, drop this branch.
    |- Try 19 * 15 = 285. Add 285 to the number set. Current number set: [285, 22], target: 50, just two numbers left.
     |- Try 285 + 22 = 307. Evaluate 307 != 50, drop this branch.
     |- Try 285 - 22 = 263. Evaluate 263 != 50, drop this branch.
     |- Try 285 * 22 = 6270. 6270 exceeds the maximum intermediate result, drop this branch.
     |- Try 285 / 22 = 13.0. 13.0 is a decimal, drop this branch.
    |- Try 19 / 15 = 1.3. 1.3 is a decimal, drop this branch.
  |- Try 19 - 3 = 16. Add 16 to the number set. Current number set: [16, 15, 19], target: 50. Options for choosing two numbers: [(16, 15), (16, 19), (15, 19)].
   |- Pick two numbers (16, 15) (numbers left: [19]). Try possible operations.
    |- Try 16 + 15 = 31. Add 31 to the number set. Current number set: [31, 19], target: 50, just two numbers left.
     |- Try 31 + 19 = 50. Evaluate 50 == 50, target found!

Now we have found the target, let's trace back the solution:
Final step: 31 + 19 = 50
The step before: 16 + 15 = 31
The first step: 19 - 3 = 16

Output the solution in the required format:
<Solution>
19 - 3 = 16
16 + 15 = 31
31 + 19 = 50
</Solution>

Solution:
19 - 3 = 16
16 + 15 = 31
31 + 19 = 50


[TASK]
You will be given four numbers and a target number, your task is to find a way to use all four numbers exactly once, along with the basic operations (+, -, *, /), to reach the target number.

[RULES]
- You can use each number exactly once.
- You can use the four basic operations (+, -, *, /).
- The intermediate results must be integers (no decimals allowed).
- The intermediate results must be positive.
- The intermediate results will not exceed 2000.

[APPROACH]
We will solve the problem by searching. Starting from a given set of four numbers, we will follow this search process:
- At each state, we will consider all possible number pairs (in order) from the current number set. Choose one pair and apply one of the four basic operations to them to obtain a new number.
  * If there are still numbers left, we will add the new number to the number set and continue the search.
  * If we have used all numbers, we will check if the new number is equal to the target number. If it is, we have found the solution. Otherwise, we will backtrack.
- Suppose the two numbers we choose are a and b (where a >= b). We will try the four options (a + b), (a - b), (a * b), (a / b) to obtain the new number. Remember to always use the larger number as the first operand.
- If the new number is a decimal, or exceeds the maximum intermediate result, we will discard this branch and backtrack.
- We will continue this process until we reach the target number with four numbers used or exhaust all possible combinations.

[EXAMPLES]
# Example
Numbers: [40, 19, 23, 7]
Target: 29

# Search Procedure
Initial number set: [40, 19, 23, 7], target: 29. Options for choosing two numbers: [(40, 19), (40, 23), (40, 7), (19, 23), (19, 7), (23, 7)].
 |- Pick two numbers (40, 19) (numbers left: [23, 7]). Try possible operations.
  |- Try 40 + 19 = 59. Add 59 to the number set. Current number set: [59, 23, 7], target: 29. Options for choosing two numbers: [(59, 23), (59, 7), (23, 7)].
   |- Pick two numbers (59, 23) (numbers left: [7]). Try possible operations.
    |- Try 59 + 23 = 82. Add 82 to the number set. Current number set: [82, 7], target: 29, just two numbers left.
     |- Try 82 + 7 = 89. Evaluate 89 != 29, drop this branch.
     |- Try 82 - 7 = 75. Evaluate 75 != 29, drop this branch.
     |- Try 82 * 7 = 574. Evaluate 574 != 29, drop this branch.
     |- Try 82 / 7 = 11.7. 11.7 is a decimal, drop this branch.
    |- Try 59 - 23 = 36. Add 36 to the number set. Current number set: [36, 7], target: 29, just two numbers left.
     |- Try 36 + 7 = 43. Evaluate 43 != 29, drop this branch.
     |- Try 36 - 7 = 29. Evaluate 29 == 29, target found!

Now we have found the target, let's trace back the solution:
Final step: 36 - 7 = 29
The step before: 59 - 23 = 36
The first step: 40 + 19 = 59

Output the solution in the required format:
<Solution>
40 + 19 = 59
59 - 23 = 36
36 - 7 = 29
</Solution>

# Example
Numbers: [9, 16, 6, 18]
Target: 12

# Search Procedure
Initial number set: [9, 16, 6, 18], target: 12. Options for choosing two numbers: [(9, 16), (9, 6), (9, 18), (16, 6), (16, 18), (6, 18)].
 |- Pick two numbers (9, 16) (numbers left: [6, 18]). Try possible operations.
  |- Try 16 + 9 = 25. Add 25 to the number set. Current number set: [25, 6, 18], target: 12. Options for choosing two numbers: [(25, 6), (25, 18), (6, 18)].
   |- Pick two numbers (25, 6) (numbers left: [18]). Try possible operations.
    |- Try 25 + 6 = 31. Add 31 to the number set. Current number set: [31, 18], target: 12, just two numbers left.
     |- Try 31 + 18 = 49. Evaluate 49 != 12, drop this branch.
     |- Try 31 - 18 = 13. Evaluate 13 != 12, drop this branch.
     |- Try 31 * 18 = 558. Evaluate 558 != 12, drop this branch.
     |- Try 31 / 18 = 1.7. 1.7 is a decimal, drop this branch.
    |- Try 25 - 6 = 19. Add 19 to the number set. Current number set: [19, 18], target: 12, just two numbers left.
     |- Try 19 + 18 = 37. Evaluate 37 != 12, drop this branch.
     |- Try 19 - 18 = 1. Evaluate 1 != 12, drop this branch.
     |- Try 19 * 18 = 342. Evaluate 342 != 12, drop this branch.
     |- Try 19 / 18 = 1.1. 1.1 is a decimal, drop this branch.
    |- Try 25 * 6 = 150. Add 150 to the number set. Current number set: [150, 18], target: 12, just two numbers left.
     |- Try 150 + 18 = 168. Evaluate 168 != 12, drop this branch.
     |- Try 150 - 18 = 132. Evaluate 132 != 12, drop this branch.
     |- Try 150 * 18 = 2700. 2700 exceeds the maximum intermediate result, drop this branch.
     |- Try 150 / 18 = 8.3. 8.3 is a decimal, drop this branch.
    |- Try 25 / 6 = 4.2. 4.2 is a decimal, drop this branch.
   |- Pick two numbers (25, 18) (numbers left: [6]). Try possible operations.
    |- Try 25 + 18 = 43. Add 43 to the number set. Current number set: [43, 6], target: 12, just two numbers left.
     |- Try 43 + 6 = 49. Evaluate 49 != 12, drop this branch.
     |- Try 43 - 6 = 37. Evaluate 37 != 12, drop this branch.
     |- Try 43 * 6 = 258. Evaluate 258 != 12, drop this branch.
     |- Try 43 / 6 = 7.2. 7.2 is a decimal, drop this branch.
    |- Try 25 - 18 = 7. Add 7 to the number set. Current number set: [7, 6], target: 12, just two numbers left.
     |- Try 7 + 6 = 13. Evaluate 13 != 12, drop this branch.
     |- Try 7 - 6 = 1. Evaluate 1 != 12, drop this branch.
     |- Try 7 * 6 = 42. Evaluate 42 != 12, drop this branch.
     |- Try 7 / 6 = 1.2. 1.2 is a decimal, drop this branch.
    |- Try 25 * 18 = 450. Add 450 to the number set. Current number set: [450, 6], target: 12, just two numbers left.
     |- Try 450 + 6 = 456. Evaluate 456 != 12, drop this branch.
     |- Try 450 - 6 = 444. Evaluate 444 != 12, drop this branch.
     |- Try 450 * 6 = 2700. 2700 exceeds the maximum intermediate result, drop this branch.
     |- Try 450 / 6 = 75. Evaluate 75 != 12, drop this branch.
    |- Try 25 / 18 = 1.4. 1.4 is a decimal, drop this branch.
   |- Pick two numbers (6, 18) (numbers left: [25]). Try possible operations.
    |- Try 18 + 6 = 24. Add 24 to the number set. Current number set: [24, 25], target: 12, just two numbers left.
     |- Try 25 + 24 = 49. Evaluate 49 != 12, drop this branch.
     |- Try 25 - 24 = 1. Evaluate 1 != 12, drop this branch.
     |- Try 25 * 24 = 600. Evaluate 600 != 12, drop this branch.
     |- Try 25 / 24 = 1.0. 1.0 is a decimal, drop this branch.
    |- Try 18 - 6 = 12. Add 12 to the number set. Current number set: [12, 25], target: 12, just two numbers left.
     |- Try 25 + 12 = 37. Evaluate 37 != 12, drop this branch.
     |- Try 25 - 12 = 13. Evaluate 13 != 12, drop this branch.
     |- Try 25 * 12 = 300. Evaluate 300 != 12, drop this branch.
     |- Try 25 / 12 = 2.1. 2.1 is a decimal, drop this branch.
    |- Try 18 * 6 = 108. Add 108 to the number set. Current number set: [108, 25], target: 12, just two numbers left.
     |- Try 108 + 25 = 133. Evaluate 133 != 12, drop this branch.
     |- Try 108 - 25 = 83. Evaluate 83 != 12, drop this branch.
     |- Try 108 * 25 = 2700. 2700 exceeds the maximum intermediate result, drop this branch.
     |- Try 108 / 25 = 4.3. 4.3 is a decimal, drop this branch.
    |- Try 18 / 6 = 3. Add 3 to the number set. Current number set: [3, 25], target: 12, just two numbers left.
     |- Try 25 + 3 = 28. Evaluate 28 != 12, drop this branch.
     |- Try 25 - 3 = 22. Evaluate 22 != 12, drop this branch.
     |- Try 25 * 3 = 75. Evaluate 75 != 12, drop this branch.
     |- Try 25 / 3 = 8.3. 8.3 is a decimal, drop this branch.
  |- Try 16 - 9 = 7. Add 7 to the number set. Current number set: [7, 6, 18], target: 12. Options for choosing two numbers: [(7, 6), (7, 18), (6, 18)].
   |- Pick two numbers (7, 6) (numbers left: [18]). Try possible operations.
    |- Try 7 + 6 = 13. Add 13 to the number set. Current number set: [13, 18], target: 12, just two numbers left.
     |- Try 18 + 13 = 31. Evaluate 31 != 12, drop this branch.
     |- Try 18 - 13 = 5. Evaluate 5 != 12, drop this branch.
     |- Try 18 * 13 = 234. Evaluate 234 != 12, drop this branch.
     |- Try 18 / 13 = 1.4. 1.4 is a decimal, drop this branch.
    |- Try 7 - 6 = 1. Add 1 to the number set. Current number set: [1, 18], target: 12, just two numbers left.
     |- Try 18 + 1 = 19. Evaluate 19 != 12, drop this branch.
     |- Try 18 - 1 = 17. Evaluate 17 != 12, drop this branch.
     |- Try 18 * 1 = 18. Evaluate 18 != 12, drop this branch.
     |- Try 18 / 1 = 18. Evaluate 18 != 12, drop this branch.
    |- Try 7 * 6 = 42. Add 42 to the number set. Current number set: [42, 18], target: 12, just two numbers left.
     |- Try 42 + 18 = 60. Evaluate 60 != 12, drop this branch.
     |- Try 42 - 18 = 24. Evaluate 24 != 12, drop this branch.
     |- Try 42 * 18 = 756. Evaluate 756 != 12, drop this branch.
     |- Try 42 / 18 = 2.3. 2.3 is a decimal, drop this branch.
    |- Try 7 / 6 = 1.2. 1.2 is a decimal, drop this branch.
   |- Pick two numbers (7, 18) (numbers left: [6]). Try possible operations.
    |- Try 18 + 7 = 25. Add 25 to the number set. Current number set: [25, 6], target: 12, just two numbers left.
     |- Try 25 + 6 = 31. Evaluate 31 != 12, drop this branch.
     |- Try 25 - 6 = 19. Evaluate 19 != 12, drop this branch.
     |- Try 25 * 6 = 150. Evaluate 150 != 12, drop this branch.
     |- Try 25 / 6 = 4.2. 4.2 is a decimal, drop this branch.
    |- Try 18 - 7 = 11. Add 11 to the number set. Current number set: [11, 6], target: 12, just two numbers left.
     |- Try 11 + 6 = 17. Evaluate 17 != 12, drop this branch.
     |- Try 11 - 6 = 5. Evaluate 5 != 12, drop this branch.
     |- Try 11 * 6 = 66. Evaluate 66 != 12, drop this branch.
     |- Try 11 / 6 = 1.8. 1.8 is a decimal, drop this branch.
    |- Try 18 * 7 = 126. Add 126 to the number set. Current number set: [126, 6], target: 12, just two numbers left.
     |- Try 126 + 6 = 132. Evaluate 132 != 12, drop this branch.
     |- Try 126 - 6 = 120. Evaluate 120 != 12, drop this branch.
     |- Try 126 * 6 = 756. Evaluate 756 != 12, drop this branch.
     |- Try 126 / 6 = 21. Evaluate 21 != 12, drop this branch.
    |- Try 18 / 7 = 2.6. 2.6 is a decimal, drop this branch.
   |- Pick two numbers (6, 18) (numbers left: [7]). Try possible operations.
    |- Try 18 + 6 = 24. Add 24 to the number set. Current number set: [24, 7], target: 12, just two numbers left.
     |- Try 24 + 7 = 31. Evaluate 31 != 12, drop this branch.
     |- Try 24 - 7 = 17. Evaluate 17 != 12, drop this branch.
     |- Try 24 * 7 = 168. Evaluate 168 != 12, drop this branch.
     |- Try 24 / 7 = 3.4. 3.4 is a decimal, drop this branch.
    |- Try 18 - 6 = 12. Add 12 to the number set. Current number set: [12, 7], target: 12, just two numbers left.
     |- Try 12 + 7 = 19. Evaluate 19 != 12, drop this branch.
     |- Try 12 - 7 = 5. Evaluate 5 != 12, drop this branch.
     |- Try 12 * 7 = 84. Evaluate 84 != 12, drop this branch.
     |- Try 12 / 7 = 1.7. 1.7 is a decimal, drop this branch.
    |- Try 18 * 6 = 108. Add 108 to the number set. Current number set: [108, 7], target: 12, just two numbers left.
     |- Try 108 + 7 = 115. Evaluate 115 != 12, drop this branch.
     |- Try 108 - 7 = 101. Evaluate 101 != 12, drop this branch.
     |- Try 108 * 7 = 756. Evaluate 756 != 12, drop this branch.
     |- Try 108 / 7 = 15.4. 15.4 is a decimal, drop this branch.
    |- Try 18 / 6 = 3. Add 3 to the number set. Current number set: [3, 7], target: 12, just two numbers left.
     |- Try 7 + 3 = 10. Evaluate 10 != 12, drop this branch.
     |- Try 7 - 3 = 4. Evaluate 4 != 12, drop this branch.
     |- Try 7 * 3 = 21. Evaluate 21 != 12, drop this branch.
     |- Try 7 / 3 = 2.3. 2.3 is a decimal, drop this branch.
  |- Try 16 * 9 = 144. Add 144 to the number set. Current number set: [144, 6, 18], target: 12. Options for choosing two numbers: [(144, 6), (144, 18), (6, 18)].
   |- Pick two numbers (144, 6) (numbers left: [18]). Try possible operations.
    |- Try 144 + 6 = 150. Add 150 to the number set. Current number set: [150, 18], target: 12, just two numbers left.
     |- Try 150 + 18 = 168. Evaluate 168 != 12, drop this branch.
     |- Try 150 - 18 = 132. Evaluate 132 != 12, drop this branch.
     |- Try 150 * 18 = 2700. 2700 exceeds the maximum intermediate result, drop this branch.
     |- Try 150 / 18 = 8.3. 8.3 is a decimal, drop this branch.
    |- Try 144 - 6 = 138. Add 138 to the number set. Current number set: [138, 18], target: 12, just two numbers left.
     |- Try 138 + 18 = 156. Evaluate 156 != 12, drop this branch.
     |- Try 138 - 18 = 120. Evaluate 120 != 12, drop this branch.
     |- Try 138 * 18 = 2484. 2484 exceeds the maximum intermediate result, drop this branch.
     |- Try 138 / 18 = 7.7. 7.7 is a decimal, drop this branch.
    |- Try 144 * 6 = 864. Add 864 to the number set. Current number set: [864, 18], target: 12, just two numbers left.
     |- Try 864 + 18 = 882. Evaluate 882 != 12, drop this branch.
     |- Try 864 - 18 = 846. Evaluate 846 != 12, drop this branch.
     |- Try 864 * 18 = 15552. 15552 exceeds the maximum intermediate result, drop this branch.
     |- Try 864 / 18 = 48. Evaluate 48 != 12, drop this branch.
    |- Try 144 / 6 = 24. Add 24 to the number set. Current number set: [24, 18], target: 12, just two numbers left.
     |- Try 24 + 18 = 42. Evaluate 42 != 12, drop this branch.
     |- Try 24 - 18 = 6. Evaluate 6 != 12, drop this branch.
     |- Try 24 * 18 = 432. Evaluate 432 != 12, drop this branch.
     |- Try 24 / 18 = 1.3. 1.3 is a decimal, drop this branch.
   |- Pick two numbers (144, 18) (numbers left: [6]). Try possible operations.
    |- Try 144 + 18 = 162. Add 162 to the number set. Current number set: [162, 6], target: 12, just two numbers left.
     |- Try 162 + 6 = 168. Evaluate 168 != 12, drop this branch.
     |- Try 162 - 6 = 156. Evaluate 156 != 12, drop this branch.
     |- Try 162 * 6 = 972. Evaluate 972 != 12, drop this branch.
     |- Try 162 / 6 = 27. Evaluate 27 != 12, drop this branch.
    |- Try 144 - 18 = 126. Add 126 to the number set. Current number set: [126, 6], target: 12, just two numbers left.
     |- Try 126 + 6 = 132. Evaluate 132 != 12, drop this branch.
     |- Try 126 - 6 = 120. Evaluate 120 != 12, drop this branch.
     |- Try 126 * 6 = 756. Evaluate 756 != 12, drop this branch.
     |- Try 126 / 6 = 21. Evaluate 21 != 12, drop this branch.
    |- Try 144 * 18 = 2592. 2592 exceeds the maximum intermediate result, drop this branch.
    |- Try 144 / 18 = 8. Add 8 to the number set. Current number set: [8, 6], target: 12, just two numbers left.
     |- Try 8 + 6 = 14. Evaluate 14 != 12, drop this branch.
     |- Try 8 - 6 = 2. Evaluate 2 != 12, drop this branch.
     |- Try 8 * 6 = 48. Evaluate 48 != 12, drop this branch.
     |- Try 8 / 6 = 1.3. 1.3 is a decimal, drop this branch.
   |- Pick two numbers (6, 18) (numbers left: [144]). Try possible operations.
    |- Try 18 + 6 = 24. Add 24 to the number set. Current number set: [24, 144], target: 12, just two numbers left.
     |- Try 144 + 24 = 168. Evaluate 168 != 12, drop this branch.
     |- Try 144 - 24 = 120. Evaluate 120 != 12, drop this branch.
     |- Try 144 * 24 = 3456. 3456 exceeds the maximum intermediate result, drop this branch.
     |- Try 144 / 24 = 6. Evaluate 6 != 12, drop this branch.
    |- Try 18 - 6 = 12. Add 12 to the number set. Current number set: [12, 144], target: 12, just two numbers left.
     |- Try 144 + 12 = 156. Evaluate 156 != 12, drop this branch.
     |- Try 144 - 12 = 132. Evaluate 132 != 12, drop this branch.
     |- Try 144 * 12 = 1728. Evaluate 1728 != 12, drop this branch.
     |- Try 144 / 12 = 12. Evaluate 12 == 12, target found!

Now we have found the target, let's trace back the solution:
Final step: 144 / 12 = 12
The step before: 18 - 6 = 12
The first step: 16 * 9 = 144

Output the solution in the required format:
<Solution>
16 * 9 = 144
18 - 6 = 12
144 / 12 = 12
</Solution>

[Problem]
Now, solve the following problem. Note that:
- Please carefully read the approach and examples provided above, and follow them to solve the problem.
- Please ALWAYS include your search procedure (after # Search Procedure). The search procedure should follow the format of the examples provided above.
- Please mark your answer with <Solution> and </Solution> tags. The solution should be a sequence of three equations exactly following the format of the examples above, with no additional text in between.

Numbers: [26, 36, 24, 6]
Target: 40

# Search Procedure
Initial number set: [26, 36, 24, 6], target: 40. Options for choosing two numbers: [(26, 36), (26, 24), (26, 6), (36, 24), (36, 6), (24, 6)].
 |- Pick two numbers (26, 36) (numbers left: [24, 6]). Try possible operations.
  |- Try 36 + 26 = 62. Add 62 to the number set. Current number set: [62, 24, 6], target: 40. Options for choosing two numbers: [(62, 24), (62, 6), (24, 6)].
   |- Pick two numbers (62, 24) (numbers left: [6]). Try possible operations.
    |- Try 62 + 24 = 86. Add 86 to the number set. Current number set: [86, 6], target: 40, just two numbers left.
     |- Try 86 + 6 = 92. Evaluate 92 != 40, drop this branch.
     |- Try 86 - 6 = 80. Evaluate 80 != 40, drop this branch.
     |- Try 86 * 6 = 516. Evaluate 516 != 40, drop this branch.
     |- Try 86 / 6 = 14.3. 14.3 is a decimal, drop this branch.
    |- Try 62 - 24 = 38. Add 38 to the number set. Current number set: [38, 6], target: 40, just two numbers left.
     |- Try 38 + 6 = 44. Evaluate 44 != 40, drop this branch.
     |- Try 38 - 6 = 32. Evaluate 32 != 40, drop this branch.
     |- Try 38 * 6 = 228. Evaluate 228 != 40, drop this branch.
     |- Try 38 / 6 = 6.3. 6.3 is a decimal, drop this branch.
    |- Try 62 * 24 = 1488. Add 1488 to the number set. Current number set: [1488, 6], target: 40, just two numbers left.
     |- Try 1488 + 6 = 1494. Evaluate 1494 != 40, drop this branch.
     |- Try 1488 - 6 = 1482. Evaluate 1482 != 40, drop this branch.
     |- Try 1488 * 6 = 8928. 8928 exceeds the maximum intermediate result, drop this branch.
     |- Try 1488 / 6 = 248. Evaluate 248 != 40, drop this branch.
    |- Try 62 / 24 = 2.6. 2.6 is a decimal, drop this branch.
   |- Pick two numbers (62, 6) (numbers left: [24]). Try possible operations.
    |- Try 62 + 6 = 68. Add 68 to the number set. Current number set: [68, 24], target: 40, just two numbers left.
     |- Try 68 + 24 = 92. Evaluate 92 != 40, drop this branch.
     |- Try 68 - 24 = 44. Evaluate 44 != 40, drop this branch.
     |- Try 68 * 24 = 1632. Evaluate 1632 != 40, drop this branch.
     |- Try 68 / 24 = 2.8. 2.8 is a decimal, drop this branch.
    |- Try 62 - 6 = 56. Add 56 to the number set. Current number set: [56, 24], target: 40, just two numbers left.
     |- Try 56 + 24 = 80. Evaluate 80 != 40, drop this branch.
     |- Try 56 - 24 = 32. Evaluate 32 != 40, drop this branch.
     |- Try 56 * 24 = 1344. Evaluate 1344 != 40, drop this branch.
     |- Try 56 / 24 = 2.3. 2.3 is a decimal, drop this branch.
    |- Try 62 * 6 = 372. Add 372 to the number set. Current number set: [372, 24], target: 40, just two numbers left.
     |- Try 372 + 24 = 396. Evaluate 396 != 40, drop this branch.
     |- Try 372 - 24 = 348. Evaluate 348 != 40, drop this branch.
     |- Try 372 * 24 = 8928. 8928 exceeds the maximum intermediate result, drop this branch.
     |- Try 372 / 24 = 15.5. 15.5 is a decimal, drop this branch.
    |- Try 62 / 6 = 10.3. 10.3 is a decimal, drop this branch.
   |- Pick two numbers (24, 6) (numbers left: [62]). Try possible operations.
    |- Try 24 + 6 = 30. Add 30 to the number set. Current number set: [30, 62], target: 40, just two numbers left.
     |- Try 62 + 30 = 92. Evaluate 92 != 40, drop this branch.
     |- Try 62 - 30 = 32. Evaluate 32 != 40, drop this branch.
     |- Try 62 * 30 = 1860. Evaluate 1860 != 40, drop this branch.
     |- Try 62 / 30 = 2.1. 2.1 is a decimal, drop this branch.
    |- Try 24 - 6 = 18. Add 18 to the number set. Current number set: [18, 62], target: 40, just two numbers left.
     |- Try 62 + 18 = 80. Evaluate 80 != 40, drop this branch.
     |- Try 62 - 18 = 44. Evaluate 44 != 40, drop this branch.
     |- Try 62 * 18 = 1116. Evaluate 1116 != 40, drop this branch.
     |- Try 62 / 18 = 3.4. 3.4 is a decimal, drop this branch.
    |- Try 24 * 6 = 144. Add 144 to the number set. Current number set: [144, 62], target: 40, just two numbers left.
     |- Try 144 + 62 = 206. Evaluate 206 != 40, drop this branch.
     |- Try 144 - 62 = 82. Evaluate 82 != 40, drop this branch.
     |- Try 144 * 62 = 8928. 8928 exceeds the maximum intermediate result, drop this branch.
     |- Try 144 / 62 = 2.3. 2.3 is a decimal, drop this branch.
    |- Try 24 / 6 = 4. Add 4 to the number set. Current number set: [4, 62], target: 40, just two numbers left.
     |- Try 62 + 4 = 66. Evaluate 66 != 40, drop this branch.
     |- Try 62 - 4 = 58. Evaluate 58 != 40, drop this branch.
     |- Try 62 * 4 = 248. Evaluate 248 != 40, drop this branch.
     |- Try 62 / 4 = 15.5. 15.5 is a decimal, drop this branch.
  |- Try 36 - 26 = 10. Add 10 to the number set. Current number set: [10, 24, 6], target: 40. Options for choosing two numbers: [(10, 24), (10, 6), (24, 6)].
   |- Pick two numbers (10, 24) (numbers left: [6]). Try possible operations.
    |- Try 24 + 10 = 34. Add 34 to the number set. Current number set: [34, 6], target: 40, just two numbers left.
     |- Try 34 + 6 = 40. Evaluate 40 == 40, target found!

Now we have found the target, let's trace back the solution:
Final step: 34 + 6 = 40
The step before: 24 + 10 = 34
The first step: 36 - 26 = 10

Output the solution in the required format:
<Solution>
36 - 26 = 10
24 + 10 = 34
34 + 6 = 40
</Solution>

Solution:
36 - 26 = 10
24 + 10 = 34
34 + 6 = 40


[TASK]
You will be given four numbers and a target number, your task is to find a way to use all four numbers exactly once, along with the basic operations (+, -, *, /), to reach the target number.

[RULES]
- You can use each number exactly once.
- You can use the four basic operations (+, -, *, /).
- The intermediate results must be integers (no decimals allowed).
- The intermediate results must be positive.
- The intermediate results will not exceed 2000.

[APPROACH]
We will solve the problem by searching. Starting from a given set of four numbers, we will follow this search process:
- At each state, we will consider all possible number pairs (in order) from the current number set. Choose one pair and apply one of the four basic operations to them to obtain a new number.
  * If there are still numbers left, we will add the new number to the number set and continue the search.
  * If we have used all numbers, we will check if the new number is equal to the target number. If it is, we have found the solution. Otherwise, we will backtrack.
- Suppose the two numbers we choose are a and b (where a >= b). We will try the four options (a + b), (a - b), (a * b), (a / b) to obtain the new number. Remember to always use the larger number as the first operand.
- If the new number is a decimal, or exceeds the maximum intermediate result, we will discard this branch and backtrack.
- We will continue this process until we reach the target number with four numbers used or exhaust all possible combinations.

[EXAMPLES]
# Example
Numbers: [40, 19, 23, 7]
Target: 29

# Search Procedure
Initial number set: [40, 19, 23, 7], target: 29. Options for choosing two numbers: [(40, 19), (40, 23), (40, 7), (19, 23), (19, 7), (23, 7)].
 |- Pick two numbers (40, 19) (numbers left: [23, 7]). Try possible operations.
  |- Try 40 + 19 = 59. Add 59 to the number set. Current number set: [59, 23, 7], target: 29. Options for choosing two numbers: [(59, 23), (59, 7), (23, 7)].
   |- Pick two numbers (59, 23) (numbers left: [7]). Try possible operations.
    |- Try 59 + 23 = 82. Add 82 to the number set. Current number set: [82, 7], target: 29, just two numbers left.
     |- Try 82 + 7 = 89. Evaluate 89 != 29, drop this branch.
     |- Try 82 - 7 = 75. Evaluate 75 != 29, drop this branch.
     |- Try 82 * 7 = 574. Evaluate 574 != 29, drop this branch.
     |- Try 82 / 7 = 11.7. 11.7 is a decimal, drop this branch.
    |- Try 59 - 23 = 36. Add 36 to the number set. Current number set: [36, 7], target: 29, just two numbers left.
     |- Try 36 + 7 = 43. Evaluate 43 != 29, drop this branch.
     |- Try 36 - 7 = 29. Evaluate 29 == 29, target found!

Now we have found the target, let's trace back the solution:
Final step: 36 - 7 = 29
The step before: 59 - 23 = 36
The first step: 40 + 19 = 59

Output the solution in the required format:
<Solution>
40 + 19 = 59
59 - 23 = 36
36 - 7 = 29
</Solution>

# Example
Numbers: [9, 16, 6, 18]
Target: 12

# Search Procedure
Initial number set: [9, 16, 6, 18], target: 12. Options for choosing two numbers: [(9, 16), (9, 6), (9, 18), (16, 6), (16, 18), (6, 18)].
 |- Pick two numbers (9, 16) (numbers left: [6, 18]). Try possible operations.
  |- Try 16 + 9 = 25. Add 25 to the number set. Current number set: [25, 6, 18], target: 12. Options for choosing two numbers: [(25, 6), (25, 18), (6, 18)].
   |- Pick two numbers (25, 6) (numbers left: [18]). Try possible operations.
    |- Try 25 + 6 = 31. Add 31 to the number set. Current number set: [31, 18], target: 12, just two numbers left.
     |- Try 31 + 18 = 49. Evaluate 49 != 12, drop this branch.
     |- Try 31 - 18 = 13. Evaluate 13 != 12, drop this branch.
     |- Try 31 * 18 = 558. Evaluate 558 != 12, drop this branch.
     |- Try 31 / 18 = 1.7. 1.7 is a decimal, drop this branch.
    |- Try 25 - 6 = 19. Add 19 to the number set. Current number set: [19, 18], target: 12, just two numbers left.
     |- Try 19 + 18 = 37. Evaluate 37 != 12, drop this branch.
     |- Try 19 - 18 = 1. Evaluate 1 != 12, drop this branch.
     |- Try 19 * 18 = 342. Evaluate 342 != 12, drop this branch.
     |- Try 19 / 18 = 1.1. 1.1 is a decimal, drop this branch.
    |- Try 25 * 6 = 150. Add 150 to the number set. Current number set: [150, 18], target: 12, just two numbers left.
     |- Try 150 + 18 = 168. Evaluate 168 != 12, drop this branch.
     |- Try 150 - 18 = 132. Evaluate 132 != 12, drop this branch.
     |- Try 150 * 18 = 2700. 2700 exceeds the maximum intermediate result, drop this branch.
     |- Try 150 / 18 = 8.3. 8.3 is a decimal, drop this branch.
    |- Try 25 / 6 = 4.2. 4.2 is a decimal, drop this branch.
   |- Pick two numbers (25, 18) (numbers left: [6]). Try possible operations.
    |- Try 25 + 18 = 43. Add 43 to the number set. Current number set: [43, 6], target: 12, just two numbers left.
     |- Try 43 + 6 = 49. Evaluate 49 != 12, drop this branch.
     |- Try 43 - 6 = 37. Evaluate 37 != 12, drop this branch.
     |- Try 43 * 6 = 258. Evaluate 258 != 12, drop this branch.
     |- Try 43 / 6 = 7.2. 7.2 is a decimal, drop this branch.
    |- Try 25 - 18 = 7. Add 7 to the number set. Current number set: [7, 6], target: 12, just two numbers left.
     |- Try 7 + 6 = 13. Evaluate 13 != 12, drop this branch.
     |- Try 7 - 6 = 1. Evaluate 1 != 12, drop this branch.
     |- Try 7 * 6 = 42. Evaluate 42 != 12, drop this branch.
     |- Try 7 / 6 = 1.2. 1.2 is a decimal, drop this branch.
    |- Try 25 * 18 = 450. Add 450 to the number set. Current number set: [450, 6], target: 12, just two numbers left.
     |- Try 450 + 6 = 456. Evaluate 456 != 12, drop this branch.
     |- Try 450 - 6 = 444. Evaluate 444 != 12, drop this branch.
     |- Try 450 * 6 = 2700. 2700 exceeds the maximum intermediate result, drop this branch.
     |- Try 450 / 6 = 75. Evaluate 75 != 12, drop this branch.
    |- Try 25 / 18 = 1.4. 1.4 is a decimal, drop this branch.
   |- Pick two numbers (6, 18) (numbers left: [25]). Try possible operations.
    |- Try 18 + 6 = 24. Add 24 to the number set. Current number set: [24, 25], target: 12, just two numbers left.
     |- Try 25 + 24 = 49. Evaluate 49 != 12, drop this branch.
     |- Try 25 - 24 = 1. Evaluate 1 != 12, drop this branch.
     |- Try 25 * 24 = 600. Evaluate 600 != 12, drop this branch.
     |- Try 25 / 24 = 1.0. 1.0 is a decimal, drop this branch.
    |- Try 18 - 6 = 12. Add 12 to the number set. Current number set: [12, 25], target: 12, just two numbers left.
     |- Try 25 + 12 = 37. Evaluate 37 != 12, drop this branch.
     |- Try 25 - 12 = 13. Evaluate 13 != 12, drop this branch.
     |- Try 25 * 12 = 300. Evaluate 300 != 12, drop this branch.
     |- Try 25 / 12 = 2.1. 2.1 is a decimal, drop this branch.
    |- Try 18 * 6 = 108. Add 108 to the number set. Current number set: [108, 25], target: 12, just two numbers left.
     |- Try 108 + 25 = 133. Evaluate 133 != 12, drop this branch.
     |- Try 108 - 25 = 83. Evaluate 83 != 12, drop this branch.
     |- Try 108 * 25 = 2700. 2700 exceeds the maximum intermediate result, drop this branch.
     |- Try 108 / 25 = 4.3. 4.3 is a decimal, drop this branch.
    |- Try 18 / 6 = 3. Add 3 to the number set. Current number set: [3, 25], target: 12, just two numbers left.
     |- Try 25 + 3 = 28. Evaluate 28 != 12, drop this branch.
     |- Try 25 - 3 = 22. Evaluate 22 != 12, drop this branch.
     |- Try 25 * 3 = 75. Evaluate 75 != 12, drop this branch.
     |- Try 25 / 3 = 8.3. 8.3 is a decimal, drop this branch.
  |- Try 16 - 9 = 7. Add 7 to the number set. Current number set: [7, 6, 18], target: 12. Options for choosing two numbers: [(7, 6), (7, 18), (6, 18)].
   |- Pick two numbers (7, 6) (numbers left: [18]). Try possible operations.
    |- Try 7 + 6 = 13. Add 13 to the number set. Current number set: [13, 18], target: 12, just two numbers left.
     |- Try 18 + 13 = 31. Evaluate 31 != 12, drop this branch.
     |- Try 18 - 13 = 5. Evaluate 5 != 12, drop this branch.
     |- Try 18 * 13 = 234. Evaluate 234 != 12, drop this branch.
     |- Try 18 / 13 = 1.4. 1.4 is a decimal, drop this branch.
    |- Try 7 - 6 = 1. Add 1 to the number set. Current number set: [1, 18], target: 12, just two numbers left.
     |- Try 18 + 1 = 19. Evaluate 19 != 12, drop this branch.
     |- Try 18 - 1 = 17. Evaluate 17 != 12, drop this branch.
     |- Try 18 * 1 = 18. Evaluate 18 != 12, drop this branch.
     |- Try 18 / 1 = 18. Evaluate 18 != 12, drop this branch.
    |- Try 7 * 6 = 42. Add 42 to the number set. Current number set: [42, 18], target: 12, just two numbers left.
     |- Try 42 + 18 = 60. Evaluate 60 != 12, drop this branch.
     |- Try 42 - 18 = 24. Evaluate 24 != 12, drop this branch.
     |- Try 42 * 18 = 756. Evaluate 756 != 12, drop this branch.
     |- Try 42 / 18 = 2.3. 2.3 is a decimal, drop this branch.
    |- Try 7 / 6 = 1.2. 1.2 is a decimal, drop this branch.
   |- Pick two numbers (7, 18) (numbers left: [6]). Try possible operations.
    |- Try 18 + 7 = 25. Add 25 to the number set. Current number set: [25, 6], target: 12, just two numbers left.
     |- Try 25 + 6 = 31. Evaluate 31 != 12, drop this branch.
     |- Try 25 - 6 = 19. Evaluate 19 != 12, drop this branch.
     |- Try 25 * 6 = 150. Evaluate 150 != 12, drop this branch.
     |- Try 25 / 6 = 4.2. 4.2 is a decimal, drop this branch.
    |- Try 18 - 7 = 11. Add 11 to the number set. Current number set: [11, 6], target: 12, just two numbers left.
     |- Try 11 + 6 = 17. Evaluate 17 != 12, drop this branch.
     |- Try 11 - 6 = 5. Evaluate 5 != 12, drop this branch.
     |- Try 11 * 6 = 66. Evaluate 66 != 12, drop this branch.
     |- Try 11 / 6 = 1.8. 1.8 is a decimal, drop this branch.
    |- Try 18 * 7 = 126. Add 126 to the number set. Current number set: [126, 6], target: 12, just two numbers left.
     |- Try 126 + 6 = 132. Evaluate 132 != 12, drop this branch.
     |- Try 126 - 6 = 120. Evaluate 120 != 12, drop this branch.
     |- Try 126 * 6 = 756. Evaluate 756 != 12, drop this branch.
     |- Try 126 / 6 = 21. Evaluate 21 != 12, drop this branch.
    |- Try 18 / 7 = 2.6. 2.6 is a decimal, drop this branch.
   |- Pick two numbers (6, 18) (numbers left: [7]). Try possible operations.
    |- Try 18 + 6 = 24. Add 24 to the number set. Current number set: [24, 7], target: 12, just two numbers left.
     |- Try 24 + 7 = 31. Evaluate 31 != 12, drop this branch.
     |- Try 24 - 7 = 17. Evaluate 17 != 12, drop this branch.
     |- Try 24 * 7 = 168. Evaluate 168 != 12, drop this branch.
     |- Try 24 / 7 = 3.4. 3.4 is a decimal, drop this branch.
    |- Try 18 - 6 = 12. Add 12 to the number set. Current number set: [12, 7], target: 12, just two numbers left.
     |- Try 12 + 7 = 19. Evaluate 19 != 12, drop this branch.
     |- Try 12 - 7 = 5. Evaluate 5 != 12, drop this branch.
     |- Try 12 * 7 = 84. Evaluate 84 != 12, drop this branch.
     |- Try 12 / 7 = 1.7. 1.7 is a decimal, drop this branch.
    |- Try 18 * 6 = 108. Add 108 to the number set. Current number set: [108, 7], target: 12, just two numbers left.
     |- Try 108 + 7 = 115. Evaluate 115 != 12, drop this branch.
     |- Try 108 - 7 = 101. Evaluate 101 != 12, drop this branch.
     |- Try 108 * 7 = 756. Evaluate 756 != 12, drop this branch.
     |- Try 108 / 7 = 15.4. 15.4 is a decimal, drop this branch.
    |- Try 18 / 6 = 3. Add 3 to the number set. Current number set: [3, 7], target: 12, just two numbers left.
     |- Try 7 + 3 = 10. Evaluate 10 != 12, drop this branch.
     |- Try 7 - 3 = 4. Evaluate 4 != 12, drop this branch.
     |- Try 7 * 3 = 21. Evaluate 21 != 12, drop this branch.
     |- Try 7 / 3 = 2.3. 2.3 is a decimal, drop this branch.
  |- Try 16 * 9 = 144. Add 144 to the number set. Current number set: [144, 6, 18], target: 12. Options for choosing two numbers: [(144, 6), (144, 18), (6, 18)].
   |- Pick two numbers (144, 6) (numbers left: [18]). Try possible operations.
    |- Try 144 + 6 = 150. Add 150 to the number set. Current number set: [150, 18], target: 12, just two numbers left.
     |- Try 150 + 18 = 168. Evaluate 168 != 12, drop this branch.
     |- Try 150 - 18 = 132. Evaluate 132 != 12, drop this branch.
     |- Try 150 * 18 = 2700. 2700 exceeds the maximum intermediate result, drop this branch.
     |- Try 150 / 18 = 8.3. 8.3 is a decimal, drop this branch.
    |- Try 144 - 6 = 138. Add 138 to the number set. Current number set: [138, 18], target: 12, just two numbers left.
     |- Try 138 + 18 = 156. Evaluate 156 != 12, drop this branch.
     |- Try 138 - 18 = 120. Evaluate 120 != 12, drop this branch.
     |- Try 138 * 18 = 2484. 2484 exceeds the maximum intermediate result, drop this branch.
     |- Try 138 / 18 = 7.7. 7.7 is a decimal, drop this branch.
    |- Try 144 * 6 = 864. Add 864 to the number set. Current number set: [864, 18], target: 12, just two numbers left.
     |- Try 864 + 18 = 882. Evaluate 882 != 12, drop this branch.
     |- Try 864 - 18 = 846. Evaluate 846 != 12, drop this branch.
     |- Try 864 * 18 = 15552. 15552 exceeds the maximum intermediate result, drop this branch.
     |- Try 864 / 18 = 48. Evaluate 48 != 12, drop this branch.
    |- Try 144 / 6 = 24. Add 24 to the number set. Current number set: [24, 18], target: 12, just two numbers left.
     |- Try 24 + 18 = 42. Evaluate 42 != 12, drop this branch.
     |- Try 24 - 18 = 6. Evaluate 6 != 12, drop this branch.
     |- Try 24 * 18 = 432. Evaluate 432 != 12, drop this branch.
     |- Try 24 / 18 = 1.3. 1.3 is a decimal, drop this branch.
   |- Pick two numbers (144, 18) (numbers left: [6]). Try possible operations.
    |- Try 144 + 18 = 162. Add 162 to the number set. Current number set: [162, 6], target: 12, just two numbers left.
     |- Try 162 + 6 = 168. Evaluate 168 != 12, drop this branch.
     |- Try 162 - 6 = 156. Evaluate 156 != 12, drop this branch.
     |- Try 162 * 6 = 972. Evaluate 972 != 12, drop this branch.
     |- Try 162 / 6 = 27. Evaluate 27 != 12, drop this branch.
    |- Try 144 - 18 = 126. Add 126 to the number set. Current number set: [126, 6], target: 12, just two numbers left.
     |- Try 126 + 6 = 132. Evaluate 132 != 12, drop this branch.
     |- Try 126 - 6 = 120. Evaluate 120 != 12, drop this branch.
     |- Try 126 * 6 = 756. Evaluate 756 != 12, drop this branch.
     |- Try 126 / 6 = 21. Evaluate 21 != 12, drop this branch.
    |- Try 144 * 18 = 2592. 2592 exceeds the maximum intermediate result, drop this branch.
    |- Try 144 / 18 = 8. Add 8 to the number set. Current number set: [8, 6], target: 12, just two numbers left.
     |- Try 8 + 6 = 14. Evaluate 14 != 12, drop this branch.
     |- Try 8 - 6 = 2. Evaluate 2 != 12, drop this branch.
     |- Try 8 * 6 = 48. Evaluate 48 != 12, drop this branch.
     |- Try 8 / 6 = 1.3. 1.3 is a decimal, drop this branch.
   |- Pick two numbers (6, 18) (numbers left: [144]). Try possible operations.
    |- Try 18 + 6 = 24. Add 24 to the number set. Current number set: [24, 144], target: 12, just two numbers left.
     |- Try 144 + 24 = 168. Evaluate 168 != 12, drop this branch.
     |- Try 144 - 24 = 120. Evaluate 120 != 12, drop this branch.
     |- Try 144 * 24 = 3456. 3456 exceeds the maximum intermediate result, drop this branch.
     |- Try 144 / 24 = 6. Evaluate 6 != 12, drop this branch.
    |- Try 18 - 6 = 12. Add 12 to the number set. Current number set: [12, 144], target: 12, just two numbers left.
     |- Try 144 + 12 = 156. Evaluate 156 != 12, drop this branch.
     |- Try 144 - 12 = 132. Evaluate 132 != 12, drop this branch.
     |- Try 144 * 12 = 1728. Evaluate 1728 != 12, drop this branch.
     |- Try 144 / 12 = 12. Evaluate 12 == 12, target found!

Now we have found the target, let's trace back the solution:
Final step: 144 / 12 = 12
The step before: 18 - 6 = 12
The first step: 16 * 9 = 144

Output the solution in the required format:
<Solution>
16 * 9 = 144
18 - 6 = 12
144 / 12 = 12
</Solution>

[Problem]
Now, solve the following problem. Note that:
- Please carefully read the approach and examples provided above, and follow them to solve the problem.
- Please ALWAYS include your search procedure (after # Search Procedure). The search procedure should follow the format of the examples provided above.
- Please mark your answer with <Solution> and </Solution> tags. The solution should be a sequence of three equations exactly following the format of the examples above, with no additional text in between.

Numbers: [23, 16, 38, 21]
Target: 10

# Search Procedure
Initial number set: [23, 16, 38, 21], target: 10. Options for choosing two numbers: [(23, 16), (23, 38), (23, 21), (16, 38), (16, 21), (38, 21)].
 |- Pick two numbers (23, 16) (numbers left: [38, 21]). Try possible operations.
  |- Try 23 + 16 = 39. Add 39 to the number set. Current number set: [39, 38, 21], target: 10. Options for choosing two numbers: [(39, 38), (39, 21), (38, 21)].
   |- Pick two numbers (39, 38) (numbers left: [21]). Try possible operations.
    |- Try 39 + 38 = 77. Add 77 to the number set. Current number set: [77, 21], target: 10, just two numbers left.
     |- Try 77 + 21 = 98. Evaluate 98 != 10, drop this branch.
     |- Try 77 - 21 = 56. Evaluate 56 != 10, drop this branch.
     |- Try 77 * 21 = 1617. Evaluate 1617 != 10, drop this branch.
     |- Try 77 / 21 = 3.7. 3.7 is a decimal, drop this branch.
    |- Try 39 - 38 = 1. Add 1 to the number set. Current number set: [1, 21], target: 10, just two numbers left.
     |- Try 21 + 1 = 22. Evaluate 22 != 10, drop this branch.
     |- Try 21 - 1 = 20. Evaluate 20 != 10, drop this branch.
     |- Try 21 * 1 = 21. Evaluate 21 != 10, drop this branch.
     |- Try 21 / 1 = 21. Evaluate 21 != 10, drop this branch.
    |- Try 39 * 38 = 1482. Add 1482 to the number set. Current number set: [1482, 21], target: 10, just two numbers left.
     |- Try 1482 + 21 = 1503. Evaluate 1503 != 10, drop this branch.
     |- Try 1482 - 21 = 1461. Evaluate 1461 != 10, drop this branch.
     |- Try 1482 * 21 = 31122. 31122 exceeds the maximum intermediate result, drop this branch.
     |- Try 1482 / 21 = 70.6. 70.6 is a decimal, drop this branch.
    |- Try 39 / 38 = 1.0. 1.0 is a decimal, drop this branch.
   |- Pick two numbers (39, 21) (numbers left: [38]). Try possible operations.
    |- Try 39 + 21 = 60. Add 60 to the number set. Current number set: [60, 38], target: 10, just two numbers left.
     |- Try 60 + 38 = 98. Evaluate 98 != 10, drop this branch.
     |- Try 60 - 38 = 22. Evaluate 22 != 10, drop this branch.
     |- Try 60 * 38 = 2280. 2280 exceeds the maximum intermediate result, drop this branch.
     |- Try 60 / 38 = 1.6. 1.6 is a decimal, drop this branch.
    |- Try 39 - 21 = 18. Add 18 to the number set. Current number set: [18, 38], target: 10, just two numbers left.
     |- Try 38 + 18 = 56. Evaluate 56 != 10, drop this branch.
     |- Try 38 - 18 = 20. Evaluate 20 != 10, drop this branch.
     |- Try 38 * 18 = 684. Evaluate 684 != 10, drop this branch.
     |- Try 38 / 18 = 2.1. 2.1 is a decimal, drop this branch.
    |- Try 39 * 21 = 819. Add 819 to the number set. Current number set: [819, 38], target: 10, just two numbers left.
     |- Try 819 + 38 = 857. Evaluate 857 != 10, drop this branch.
     |- Try 819 - 38 = 781. Evaluate 781 != 10, drop this branch.
     |- Try 819 * 38 = 31122. 31122 exceeds the maximum intermediate result, drop this branch.
     |- Try 819 / 38 = 21.6. 21.6 is a decimal, drop this branch.
    |- Try 39 / 21 = 1.9. 1.9 is a decimal, drop this branch.
   |- Pick two numbers (38, 21) (numbers left: [39]). Try possible operations.
    |- Try 38 + 21 = 59. Add 59 to the number set. Current number set: [59, 39], target: 10, just two numbers left.
     |- Try 59 + 39 = 98. Evaluate 98 != 10, drop this branch.
     |- Try 59 - 39 = 20. Evaluate 20 != 10, drop this branch.
     |- Try 59 * 39 = 2301. 2301 exceeds the maximum intermediate result, drop this branch.
     |- Try 59 / 39 = 1.5. 1.5 is a decimal, drop this branch.
    |- Try 38 - 21 = 17. Add 17 to the number set. Current number set: [17, 39], target: 10, just two numbers left.
     |- Try 39 + 17 = 56. Evaluate 56 != 10, drop this branch.
     |- Try 39 - 17 = 22. Evaluate 22 != 10, drop this branch.
     |- Try 39 * 17 = 663. Evaluate 663 != 10, drop this branch.
     |- Try 39 / 17 = 2.3. 2.3 is a decimal, drop this branch.
    |- Try 38 * 21 = 798. Add 798 to the number set. Current number set: [798, 39], target: 10, just two numbers left.
     |- Try 798 + 39 = 837. Evaluate 837 != 10, drop this branch.
     |- Try 798 - 39 = 759. Evaluate 759 != 10, drop this branch.
     |- Try 798 * 39 = 31122. 31122 exceeds the maximum intermediate result, drop this branch.
     |- Try 798 / 39 = 20.5. 20.5 is a decimal, drop this branch.
    |- Try 38 / 21 = 1.8. 1.8 is a decimal, drop this branch.
  |- Try 23 - 16 = 7. Add 7 to the number set. Current number set: [7, 38, 21], target: 10. Options for choosing two numbers: [(7, 38), (7, 21), (38, 21)].
   |- Pick two numbers (7, 38) (numbers left: [21]). Try possible operations.
    |- Try 38 + 7 = 45. Add 45 to the number set. Current number set: [45, 21], target: 10, just two numbers left.
     |- Try 45 + 21 = 66. Evaluate 66 != 10, drop this branch.
     |- Try 45 - 21 = 24. Evaluate 24 != 10, drop this branch.
     |- Try 45 * 21 = 945. Evaluate 945 != 10, drop this branch.
     |- Try 45 / 21 = 2.1. 2.1 is a decimal, drop this branch.
    |- Try 38 - 7 = 31. Add 31 to the number set. Current number set: [31, 21], target: 10, just two numbers left.
     |- Try 31 + 21 = 52. Evaluate 52 != 10, drop this branch.
     |- Try 31 - 21 = 10. Evaluate 10 == 10, target found!

Now we have found the target, let's trace back the solution:
Final step: 31 - 21 = 10
The step before: 38 - 7 = 31
The first step: 23 - 16 = 7

Output the solution in the required format:
<Solution>
23 - 16 = 7
38 - 7 = 31
31 - 21 = 10
</Solution>

Solution:
23 - 16 = 7
38 - 7 = 31
31 - 21 = 10