Write a function Merge $\left[l_1, l_2\right]$ that merges the elements of the two lists $l_1$ and $l_2$ into a single list. The elements of $l_1$ and $l_2$ are assumed to be numbers sorted in ascending order (you do not have to check this property). The result should also be sorted in ascending order. The result should be obtained without sorting the list anew.
Write a single procedural definition that works on the input lists in a loop. You can use any list operations, such as First $[l]$, Rest $[l]$, Prepend $[l$, elem $]$, Append $[l$, elem $]$, or Join $\left[l_1, l_2\right]$. Use Module [] to declare local variables.
The result contains all elements of the two input lists in ascending order.
$$
\begin{aligned}
& \operatorname{In}[1]:=\operatorname{Merge}[\{1,5,7\},\{2,3,8\}] \\
& \operatorname{Out}[1]=\operatorname{Merge}[\{1,5,7\},\{2,3,8\}]
\end{aligned}
$$
Your function should also treat such special inputs correctly.
$$
\begin{aligned}
& \operatorname{In}[2]:=\operatorname{Merge}[\{\},\{2,3\}] \\
& \operatorname{Out}[2]=\operatorname{Merge}[\{\},\{2,3\}]
\end{aligned}
$$
If an element appears more than once, it must appear in the result the same number of times.
$$
\begin{aligned}
& \operatorname{In}[3]:=\operatorname{Merge}[\{1,1,2,3\},\{2,3\}] \\
& \operatorname{Dut}[3]=\operatorname{Merge}[\{1,1,2,3\},\{2,3\}]
\end{aligned}
$$