input: Write a function to implement a merge sort algorithm for two lists A and B. The function should compare the first elements of both lists and add the smaller element to the result list, then move the corresponding pointer to the next element. If one list is exhausted, the remaining elements of the other 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([], [1, 2, 3]) == [1, 2, 3]
  assert merge_sort([1, 2, 3], []) == [1, 2, 3]
  assert merge_sort([], []) == []
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