```python
LADDER = (("m", 1000), ("cm", 10), ("mm", 1))


def split_length(mm: int) -> str:
    if mm is None or not isinstance(mm, int):
        raise ValueError("Length must be a whole number.")
    if mm < 0:
        raise ValueError("Negative length is not allowed.")

    result = []
    for unit, divisor in LADDER:
        count = mm // divisor
        if count > 0:
            result.append(f"{count}{unit}")
        mm %= divisor

    return " ".join(result) if result else "0mm"
```