Вот пример функции на Python, реализующей алгоритм k-way merge:

```python
def merge(*lists, compare=None) -> list:
    if compare is None:
        compare = lambda a, b: a < b
    merged_list = []
    iterators = [iter(lst) for lst in lists]
    while True:
        # Находим минимальный элемент среди текущих значений всех списков
        values = [next(itr, None) for itr in iterators]
        min_val = None
        min_idx = None
        for i, val in enumerate(values):
            if val is not None and (min_val is None or compare(val, min_val)):
                min_val = val
                min_idx = i
        # Если минимальный элемент не найден, значит мы прошли все списки
        if min_idx is None:
            break
        # Добавляем минимальный элемент в результирующий список
        merged_list.append(min_val)
    return merged_list
```

Функция принимает неопределенное количество списков и функцию сравнения элементов. По умолчанию используется функция lambda a, b: a < b, которая сравнивает элементы как числа. Функция сравнения принимает два аргумента и возвращает True, если первый аргумент должен стоять перед вторым в отсортированном списке.

Алгоритм работает следующим образом:

1. Создаем пустой список merged_list для хранения отсортированного результата.
2. Создаем список iterators, содержащий итераторы для каждого входного списка. 
3. Входим в бесконечный цикл.
4. Для каждого списка из iterators извлекаем следующий элемент и помещаем их в список values.
5. Ищем минимальный элемент в списке values с помощью функции сравнения compare.
6. Если минимальный элемент не найден, значит мы прошли все списки и выходим из цикла.
7. Добавляем минимальный элемент в список merged_list.
8. Переходим к шагу 3.
9. Возвращаем список merged_list.
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence