input: Write a function to implement a sorting algorithm that compares the first elements of two lists, A and B, and adds the smaller element to the result list, moving the pointer to the next element accordingly. The function should continue this process until all elements from both lists are added to the result list in sorted order. If both lists are empty, return an empty list.
  
  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.extend(A[i:])
      result.extend(B[j:])
      return result