[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: [18, 44, 26, 49]
Target: 49

# Search Procedure
Initial number set: [18, 44, 26, 49], target: 49. Options for choosing two numbers: [(18, 44), (18, 26), (18, 49), (44, 26), (44, 49), (26, 49)].
 |- Pick two numbers (18, 44) (numbers left: [26, 49]). Try possible operations.
  |- Try 44 + 18 = 62. Add 62 to the number set. Current number set: [62, 26, 49], target: 49. Options for choosing two numbers: [(62, 26), (62, 49), (26, 49)].
   |- Pick two numbers (62, 26) (numbers left: [49]). Try possible operations.
    |- Try 62 + 26 = 88. Add 88 to the number set. Current number set: [88, 49], target: 49, just two numbers left.
     |- Try 88 + 49 = 137. Evaluate 137 != 49, drop this branch.
     |- Try 88 - 49 = 39. Evaluate 39 != 49, drop this branch.
     |- Try 88 * 49 = 4312. 4312 exceeds the maximum intermediate result, drop this branch.
     |- Try 88 / 49 = 1.8. 1.8 is a decimal, drop this branch.
    |- Try 62 - 26 = 36. Add 36 to the number set. Current number set: [36, 49], target: 49, just two numbers left.
     |- Try 49 + 36 = 85. Evaluate 85 != 49, drop this branch.
     |- Try 49 - 36 = 13. Evaluate 13 != 49, drop this branch.
     |- Try 49 * 36 = 1764. Evaluate 1764 != 49, drop this branch.
     |- Try 49 / 36 = 1.4. 1.4 is a decimal, drop this branch.
    |- Try 62 * 26 = 1612. Add 1612 to the number set. Current number set: [1612, 49], target: 49, just two numbers left.
     |- Try 1612 + 49 = 1661. Evaluate 1661 != 49, drop this branch.
     |- Try 1612 - 49 = 1563. Evaluate 1563 != 49, drop this branch.
     |- Try 1612 * 49 = 78988. 78988 exceeds the maximum intermediate result, drop this branch.
     |- Try 1612 / 49 = 32.9. 32.9 is a decimal, drop this branch.
    |- Try 62 / 26 = 2.4. 2.4 is a decimal, drop this branch.
   |- Pick two numbers (62, 49) (numbers left: [26]). Try possible operations.
    |- Try 62 + 49 = 111. Add 111 to the number set. Current number set: [111, 26], target: 49, just two numbers left.
     |- Try 111 + 26 = 137. Evaluate 137 != 49, drop this branch.
     |- Try 111 - 26 = 85. Evaluate 85 != 49, drop this branch.
     |- Try 111 * 26 = 2886. 2886 exceeds the maximum intermediate result, drop this branch.
     |- Try 111 / 26 = 4.3. 4.3 is a decimal, drop this branch.
    |- Try 62 - 49 = 13. Add 13 to the number set. Current number set: [13, 26], target: 49, just two numbers left.
     |- Try 26 + 13 = 39. Evaluate 39 != 49, drop this branch.
     |- Try 26 - 13 = 13. Evaluate 13 != 49, drop this branch.
     |- Try 26 * 13 = 338. Evaluate 338 != 49, drop this branch.
     |- Try 26 / 13 = 2. Evaluate 2 != 49, drop this branch.
    |- Try 62 * 49 = 3038. 3038 exceeds the maximum intermediate result, drop this branch.
    |- Try 62 / 49 = 1.3. 1.3 is a decimal, drop this branch.
   |- Pick two numbers (26, 49) (numbers left: [62]). Try possible operations.
    |- Try 49 + 26 = 75. Add 75 to the number set. Current number set: [75, 62], target: 49, just two numbers left.
     |- Try 75 + 62 = 137. Evaluate 137 != 49, drop this branch.
     |- Try 75 - 62 = 13. Evaluate 13 != 49, drop this branch.
     |- Try 75 * 62 = 4650. 4650 exceeds the maximum intermediate result, drop this branch.
     |- Try 75 / 62 = 1.2. 1.2 is a decimal, drop this branch.
    |- Try 49 - 26 = 23. Add 23 to the number set. Current number set: [23, 62], target: 49, just two numbers left.
     |- Try 62 + 23 = 85. Evaluate 85 != 49, drop this branch.
     |- Try 62 - 23 = 39. Evaluate 39 != 49, drop this branch.
     |- Try 62 * 23 = 1426. Evaluate 1426 != 49, drop this branch.
     |- Try 62 / 23 = 2.7. 2.7 is a decimal, drop this branch.
    |- Try 49 * 26 = 1274. Add 1274 to the number set. Current number set: [1274, 62], target: 49, just two numbers left.
     |- Try 1274 + 62 = 1336. Evaluate 1336 != 49, drop this branch.
     |- Try 1274 - 62 = 1212. Evaluate 1212 != 49, drop this branch.
     |- Try 1274 * 62 = 78988. 78988 exceeds the maximum intermediate result, drop this branch.
     |- Try 1274 / 62 = 20.5. 20.5 is a decimal, drop this branch.
    |- Try 49 / 26 = 1.9. 1.9 is a decimal, drop this branch.
  |- Try 44 - 18 = 26. Add 26 to the number set. Current number set: [26, 26, 49], target: 49. Options for choosing two numbers: [(26, 26), (26, 49), (26, 49)].
   |- Pick two numbers (26, 26) (numbers left: [49]). Try possible operations.
    |- Try 26 + 26 = 52. Add 52 to the number set. Current number set: [52, 49], target: 49, just two numbers left.
     |- Try 52 + 49 = 101. Evaluate 101 != 49, drop this branch.
     |- Try 52 - 49 = 3. Evaluate 3 != 49, drop this branch.
     |- Try 52 * 49 = 2548. 2548 exceeds the maximum intermediate result, drop this branch.
     |- Try 52 / 49 = 1.1. 1.1 is a decimal, drop this branch.
    |- Try 26 - 26 = 0. Add 0 to the number set. Current number set: [0, 49], target: 49, just two numbers left.
     |- Try 49 + 0 = 49. Evaluate 49 == 49, target found!

Now we have found the target, let's trace back the solution:
Final step: 49 + 0 = 49
The step before: 26 - 26 = 0
The first step: 44 - 18 = 26

Output the solution in the required format:
<Solution>
44 - 18 = 26
26 - 26 = 0
49 + 0 = 49
</Solution>

Solution:
44 - 18 = 26
26 - 26 = 0
49 + 0 = 49


[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, 38, 13, 34]
Target: 35

# Search Procedure
Initial number set: [26, 38, 13, 34], target: 35. Options for choosing two numbers: [(26, 38), (26, 13), (26, 34), (38, 13), (38, 34), (13, 34)].
 |- Pick two numbers (26, 38) (numbers left: [13, 34]). Try possible operations.
  |- Try 38 + 26 = 64. Add 64 to the number set. Current number set: [64, 13, 34], target: 35. Options for choosing two numbers: [(64, 13), (64, 34), (13, 34)].
   |- Pick two numbers (64, 13) (numbers left: [34]). Try possible operations.
    |- Try 64 + 13 = 77. Add 77 to the number set. Current number set: [77, 34], target: 35, just two numbers left.
     |- Try 77 + 34 = 111. Evaluate 111 != 35, drop this branch.
     |- Try 77 - 34 = 43. Evaluate 43 != 35, drop this branch.
     |- Try 77 * 34 = 2618. 2618 exceeds the maximum intermediate result, drop this branch.
     |- Try 77 / 34 = 2.3. 2.3 is a decimal, drop this branch.
    |- Try 64 - 13 = 51. Add 51 to the number set. Current number set: [51, 34], target: 35, just two numbers left.
     |- Try 51 + 34 = 85. Evaluate 85 != 35, drop this branch.
     |- Try 51 - 34 = 17. Evaluate 17 != 35, drop this branch.
     |- Try 51 * 34 = 1734. Evaluate 1734 != 35, drop this branch.
     |- Try 51 / 34 = 1.5. 1.5 is a decimal, drop this branch.
    |- Try 64 * 13 = 832. Add 832 to the number set. Current number set: [832, 34], target: 35, just two numbers left.
     |- Try 832 + 34 = 866. Evaluate 866 != 35, drop this branch.
     |- Try 832 - 34 = 798. Evaluate 798 != 35, drop this branch.
     |- Try 832 * 34 = 28288. 28288 exceeds the maximum intermediate result, drop this branch.
     |- Try 832 / 34 = 24.5. 24.5 is a decimal, drop this branch.
    |- Try 64 / 13 = 4.9. 4.9 is a decimal, drop this branch.
   |- Pick two numbers (64, 34) (numbers left: [13]). Try possible operations.
    |- Try 64 + 34 = 98. Add 98 to the number set. Current number set: [98, 13], target: 35, just two numbers left.
     |- Try 98 + 13 = 111. Evaluate 111 != 35, drop this branch.
     |- Try 98 - 13 = 85. Evaluate 85 != 35, drop this branch.
     |- Try 98 * 13 = 1274. Evaluate 1274 != 35, drop this branch.
     |- Try 98 / 13 = 7.5. 7.5 is a decimal, drop this branch.
    |- Try 64 - 34 = 30. Add 30 to the number set. Current number set: [30, 13], target: 35, just two numbers left.
     |- Try 30 + 13 = 43. Evaluate 43 != 35, drop this branch.
     |- Try 30 - 13 = 17. Evaluate 17 != 35, drop this branch.
     |- Try 30 * 13 = 390. Evaluate 390 != 35, drop this branch.
     |- Try 30 / 13 = 2.3. 2.3 is a decimal, drop this branch.
    |- Try 64 * 34 = 2176. 2176 exceeds the maximum intermediate result, drop this branch.
    |- Try 64 / 34 = 1.9. 1.9 is a decimal, drop this branch.
   |- Pick two numbers (13, 34) (numbers left: [64]). Try possible operations.
    |- Try 34 + 13 = 47. Add 47 to the number set. Current number set: [47, 64], target: 35, just two numbers left.
     |- Try 64 + 47 = 111. Evaluate 111 != 35, drop this branch.
     |- Try 64 - 47 = 17. Evaluate 17 != 35, drop this branch.
     |- Try 64 * 47 = 3008. 3008 exceeds the maximum intermediate result, drop this branch.
     |- Try 64 / 47 = 1.4. 1.4 is a decimal, drop this branch.
    |- Try 34 - 13 = 21. Add 21 to the number set. Current number set: [21, 64], target: 35, just two numbers left.
     |- Try 64 + 21 = 85. Evaluate 85 != 35, drop this branch.
     |- Try 64 - 21 = 43. Evaluate 43 != 35, drop this branch.
     |- Try 64 * 21 = 1344. Evaluate 1344 != 35, drop this branch.
     |- Try 64 / 21 = 3.0. 3.0 is a decimal, drop this branch.
    |- Try 34 * 13 = 442. Add 442 to the number set. Current number set: [442, 64], target: 35, just two numbers left.
     |- Try 442 + 64 = 506. Evaluate 506 != 35, drop this branch.
     |- Try 442 - 64 = 378. Evaluate 378 != 35, drop this branch.
     |- Try 442 * 64 = 28288. 28288 exceeds the maximum intermediate result, drop this branch.
     |- Try 442 / 64 = 6.9. 6.9 is a decimal, drop this branch.
    |- Try 34 / 13 = 2.6. 2.6 is a decimal, drop this branch.
  |- Try 38 - 26 = 12. Add 12 to the number set. Current number set: [12, 13, 34], target: 35. Options for choosing two numbers: [(12, 13), (12, 34), (13, 34)].
   |- Pick two numbers (12, 13) (numbers left: [34]). Try possible operations.
    |- Try 13 + 12 = 25. Add 25 to the number set. Current number set: [25, 34], target: 35, just two numbers left.
     |- Try 34 + 25 = 59. Evaluate 59 != 35, drop this branch.
     |- Try 34 - 25 = 9. Evaluate 9 != 35, drop this branch.
     |- Try 34 * 25 = 850. Evaluate 850 != 35, drop this branch.
     |- Try 34 / 25 = 1.4. 1.4 is a decimal, drop this branch.
    |- Try 13 - 12 = 1. Add 1 to the number set. Current number set: [1, 34], target: 35, just two numbers left.
     |- Try 34 + 1 = 35. Evaluate 35 == 35, target found!

Now we have found the target, let's trace back the solution:
Final step: 34 + 1 = 35
The step before: 13 - 12 = 1
The first step: 38 - 26 = 12

Output the solution in the required format:
<Solution>
38 - 26 = 12
13 - 12 = 1
34 + 1 = 35
</Solution>

Solution:
38 - 26 = 12
13 - 12 = 1
34 + 1 = 35


[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: [38, 23, 23, 18]
Target: 10

# Search Procedure
Initial number set: [38, 23, 23, 18], target: 10. Options for choosing two numbers: [(38, 23), (38, 23), (38, 18), (23, 23), (23, 18), (23, 18)].
 |- Pick two numbers (38, 23) (numbers left: [23, 18]). Try possible operations.
  |- Try 38 + 23 = 61. Add 61 to the number set. Current number set: [61, 23, 18], target: 10. Options for choosing two numbers: [(61, 23), (61, 18), (23, 18)].
   |- Pick two numbers (61, 23) (numbers left: [18]). Try possible operations.
    |- Try 61 + 23 = 84. Add 84 to the number set. Current number set: [84, 18], target: 10, just two numbers left.
     |- Try 84 + 18 = 102. Evaluate 102 != 10, drop this branch.
     |- Try 84 - 18 = 66. Evaluate 66 != 10, drop this branch.
     |- Try 84 * 18 = 1512. Evaluate 1512 != 10, drop this branch.
     |- Try 84 / 18 = 4.7. 4.7 is a decimal, drop this branch.
    |- Try 61 - 23 = 38. Add 38 to the number set. Current number set: [38, 18], 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 61 * 23 = 1403. Add 1403 to the number set. Current number set: [1403, 18], target: 10, just two numbers left.
     |- Try 1403 + 18 = 1421. Evaluate 1421 != 10, drop this branch.
     |- Try 1403 - 18 = 1385. Evaluate 1385 != 10, drop this branch.
     |- Try 1403 * 18 = 25254. 25254 exceeds the maximum intermediate result, drop this branch.
     |- Try 1403 / 18 = 77.9. 77.9 is a decimal, drop this branch.
    |- Try 61 / 23 = 2.7. 2.7 is a decimal, drop this branch.
   |- Pick two numbers (61, 18) (numbers left: [23]). Try possible operations.
    |- Try 61 + 18 = 79. Add 79 to the number set. Current number set: [79, 23], target: 10, just two numbers left.
     |- Try 79 + 23 = 102. Evaluate 102 != 10, drop this branch.
     |- Try 79 - 23 = 56. Evaluate 56 != 10, drop this branch.
     |- Try 79 * 23 = 1817. Evaluate 1817 != 10, drop this branch.
     |- Try 79 / 23 = 3.4. 3.4 is a decimal, drop this branch.
    |- Try 61 - 18 = 43. Add 43 to the number set. Current number set: [43, 23], target: 10, just two numbers left.
     |- Try 43 + 23 = 66. Evaluate 66 != 10, drop this branch.
     |- Try 43 - 23 = 20. Evaluate 20 != 10, drop this branch.
     |- Try 43 * 23 = 989. Evaluate 989 != 10, drop this branch.
     |- Try 43 / 23 = 1.9. 1.9 is a decimal, drop this branch.
    |- Try 61 * 18 = 1098. Add 1098 to the number set. Current number set: [1098, 23], target: 10, just two numbers left.
     |- Try 1098 + 23 = 1121. Evaluate 1121 != 10, drop this branch.
     |- Try 1098 - 23 = 1075. Evaluate 1075 != 10, drop this branch.
     |- Try 1098 * 23 = 25254. 25254 exceeds the maximum intermediate result, drop this branch.
     |- Try 1098 / 23 = 47.7. 47.7 is a decimal, drop this branch.
    |- Try 61 / 18 = 3.4. 3.4 is a decimal, drop this branch.
   |- Pick two numbers (23, 18) (numbers left: [61]). Try possible operations.
    |- Try 23 + 18 = 41. Add 41 to the number set. Current number set: [41, 61], target: 10, just two numbers left.
     |- Try 61 + 41 = 102. Evaluate 102 != 10, drop this branch.
     |- Try 61 - 41 = 20. Evaluate 20 != 10, drop this branch.
     |- Try 61 * 41 = 2501. 2501 exceeds the maximum intermediate result, drop this branch.
     |- Try 61 / 41 = 1.5. 1.5 is a decimal, drop this branch.
    |- Try 23 - 18 = 5. Add 5 to the number set. Current number set: [5, 61], target: 10, just two numbers left.
     |- Try 61 + 5 = 66. Evaluate 66 != 10, drop this branch.
     |- Try 61 - 5 = 56. Evaluate 56 != 10, drop this branch.
     |- Try 61 * 5 = 305. Evaluate 305 != 10, drop this branch.
     |- Try 61 / 5 = 12.2. 12.2 is a decimal, drop this branch.
    |- Try 23 * 18 = 414. Add 414 to the number set. Current number set: [414, 61], target: 10, just two numbers left.
     |- Try 414 + 61 = 475. Evaluate 475 != 10, drop this branch.
     |- Try 414 - 61 = 353. Evaluate 353 != 10, drop this branch.
     |- Try 414 * 61 = 25254. 25254 exceeds the maximum intermediate result, drop this branch.
     |- Try 414 / 61 = 6.8. 6.8 is a decimal, drop this branch.
    |- Try 23 / 18 = 1.3. 1.3 is a decimal, drop this branch.
  |- Try 38 - 23 = 15. Add 15 to the number set. Current number set: [15, 23, 18], target: 10. Options for choosing two numbers: [(15, 23), (15, 18), (23, 18)].
   |- Pick two numbers (15, 23) (numbers left: [18]). Try possible operations.
    |- Try 23 + 15 = 38. Add 38 to the number set. Current number set: [38, 18], 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 23 - 15 = 8. Add 8 to the number set. Current number set: [8, 18], target: 10, just two numbers left.
     |- Try 18 + 8 = 26. Evaluate 26 != 10, drop this branch.
     |- Try 18 - 8 = 10. Evaluate 10 == 10, target found!

Now we have found the target, let's trace back the solution:
Final step: 18 - 8 = 10
The step before: 23 - 15 = 8
The first step: 38 - 23 = 15

Output the solution in the required format:
<Solution>
38 - 23 = 15
23 - 15 = 8
18 - 8 = 10
</Solution>

Solution:
38 - 23 = 15
23 - 15 = 8
18 - 8 = 10


[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, 10, 7, 8]
Target: 23

# Search Procedure
Initial number set: [23, 10, 7, 8], target: 23. Options for choosing two numbers: [(23, 10), (23, 7), (23, 8), (10, 7), (10, 8), (7, 8)].
 |- Pick two numbers (23, 10) (numbers left: [7, 8]). Try possible operations.
  |- Try 23 + 10 = 33. Add 33 to the number set. Current number set: [33, 7, 8], target: 23. Options for choosing two numbers: [(33, 7), (33, 8), (7, 8)].
   |- Pick two numbers (33, 7) (numbers left: [8]). Try possible operations.
    |- Try 33 + 7 = 40. Add 40 to the number set. Current number set: [40, 8], target: 23, just two numbers left.
     |- Try 40 + 8 = 48. Evaluate 48 != 23, drop this branch.
     |- Try 40 - 8 = 32. Evaluate 32 != 23, drop this branch.
     |- Try 40 * 8 = 320. Evaluate 320 != 23, drop this branch.
     |- Try 40 / 8 = 5. Evaluate 5 != 23, drop this branch.
    |- Try 33 - 7 = 26. Add 26 to the number set. Current number set: [26, 8], target: 23, just two numbers left.
     |- Try 26 + 8 = 34. Evaluate 34 != 23, drop this branch.
     |- Try 26 - 8 = 18. Evaluate 18 != 23, drop this branch.
     |- Try 26 * 8 = 208. Evaluate 208 != 23, drop this branch.
     |- Try 26 / 8 = 3.2. 3.2 is a decimal, drop this branch.
    |- Try 33 * 7 = 231. Add 231 to the number set. Current number set: [231, 8], target: 23, just two numbers left.
     |- Try 231 + 8 = 239. Evaluate 239 != 23, drop this branch.
     |- Try 231 - 8 = 223. Evaluate 223 != 23, drop this branch.
     |- Try 231 * 8 = 1848. Evaluate 1848 != 23, drop this branch.
     |- Try 231 / 8 = 28.9. 28.9 is a decimal, drop this branch.
    |- Try 33 / 7 = 4.7. 4.7 is a decimal, drop this branch.
   |- Pick two numbers (33, 8) (numbers left: [7]). Try possible operations.
    |- Try 33 + 8 = 41. Add 41 to the number set. Current number set: [41, 7], target: 23, just two numbers left.
     |- Try 41 + 7 = 48. Evaluate 48 != 23, drop this branch.
     |- Try 41 - 7 = 34. Evaluate 34 != 23, drop this branch.
     |- Try 41 * 7 = 287. Evaluate 287 != 23, drop this branch.
     |- Try 41 / 7 = 5.9. 5.9 is a decimal, drop this branch.
    |- Try 33 - 8 = 25. Add 25 to the number set. Current number set: [25, 7], target: 23, just two numbers left.
     |- Try 25 + 7 = 32. Evaluate 32 != 23, drop this branch.
     |- Try 25 - 7 = 18. Evaluate 18 != 23, drop this branch.
     |- Try 25 * 7 = 175. Evaluate 175 != 23, drop this branch.
     |- Try 25 / 7 = 3.6. 3.6 is a decimal, drop this branch.
    |- Try 33 * 8 = 264. Add 264 to the number set. Current number set: [264, 7], target: 23, just two numbers left.
     |- Try 264 + 7 = 271. Evaluate 271 != 23, drop this branch.
     |- Try 264 - 7 = 257. Evaluate 257 != 23, drop this branch.
     |- Try 264 * 7 = 1848. Evaluate 1848 != 23, drop this branch.
     |- Try 264 / 7 = 37.7. 37.7 is a decimal, drop this branch.
    |- Try 33 / 8 = 4.1. 4.1 is a decimal, drop this branch.
   |- Pick two numbers (7, 8) (numbers left: [33]). Try possible operations.
    |- Try 8 + 7 = 15. Add 15 to the number set. Current number set: [15, 33], target: 23, just two numbers left.
     |- Try 33 + 15 = 48. Evaluate 48 != 23, drop this branch.
     |- Try 33 - 15 = 18. Evaluate 18 != 23, drop this branch.
     |- Try 33 * 15 = 495. Evaluate 495 != 23, drop this branch.
     |- Try 33 / 15 = 2.2. 2.2 is a decimal, drop this branch.
    |- Try 8 - 7 = 1. Add 1 to the number set. Current number set: [1, 33], target: 23, just two numbers left.
     |- Try 33 + 1 = 34. Evaluate 34 != 23, drop this branch.
     |- Try 33 - 1 = 32. Evaluate 32 != 23, drop this branch.
     |- Try 33 * 1 = 33. Evaluate 33 != 23, drop this branch.
     |- Try 33 / 1 = 33. Evaluate 33 != 23, drop this branch.
    |- Try 8 * 7 = 56. Add 56 to the number set. Current number set: [56, 33], target: 23, just two numbers left.
     |- Try 56 + 33 = 89. Evaluate 89 != 23, drop this branch.
     |- Try 56 - 33 = 23. Evaluate 23 == 23, target found!

Now we have found the target, let's trace back the solution:
Final step: 56 - 33 = 23
The step before: 8 * 7 = 56
The first step: 23 + 10 = 33

Output the solution in the required format:
<Solution>
23 + 10 = 33
8 * 7 = 56
56 - 33 = 23
</Solution>

Solution:
23 + 10 = 33
8 * 7 = 56
56 - 33 = 23