input: Write a function to merge two sorted lists, A and B, into one sorted list. The function should compare the first elements of both lists and add the smaller element to the result list, then move the pointer to the next element of the list from which the element was added. This process should continue until all elements from both lists are added to the result list in sorted order. If one list is exhausted before the other, the remaining elements of the non-exhausted list should be appended to the result list.
  
  def merge_sort(A, B):
   result = [] 
   i, j = 0, 0
  
   while i < len(A) and j < len(B):
   if A[i] < B[j]:
   result.append(A[i])
   i += 1
   else:
   result.append(B[j])
   j += 1
  
   result += A[i:]
   result += B[j:]
  
   return result
  
  assert merge_sort([3, 6, 8, 10, 11], [2, 5, 7, 12])==[2, 3, 5, 6, 7, 8, 10, 11, 12]
  assert merge_sort([1, 3, 5], [2, 4, 6])==[1, 2, 3, 4, 5, 6]
  assert merge_sort([10, 20, 30], [])==[10, 20, 30]
  assert merge_sort([], [1, 2, 3])==[1, 2, 3]
  assert merge_sort([5, 7, 9], [2, 4, 6, 8])==[2, 4, 5, 6, 7, 8, 9]
output: def merge_sort(A, B):
   result = [] 
   i, j = 0, 0
  
   while i < len(A) and j < len(B):
   if A[i] < B[j]:
   result.append(A[i])
   i += 1
   else:
   result.append(B[j])
   j += 1
  
   result += A[i:]
   result += B[j:]
  
   return result