recursive sorted list merger