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


def split_length(mm: int) -> str:
    # Validate mm
    if not isinstance(mm, int) or mm < 0:
        raise ValueError("Invalid length: must be a whole number and non-negative")

    # Walk LADDER carving off each unit's count
    result = ""
    for unit, multiplier in LADDER:
        count = mm // multiplier
        mm %= multiplier
        if count > 0:
            result += f"{count}{unit} "
    if mm > 0:
        result += f"{mm}mm"

    return result.strip()
```