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

def split_length(mm: int) -> str:
    if not isinstance(mm, int) or mm < 0:
        raise ValueError("Length must be a non-negative integer.")
    
    if mm == 0:
        return "0mm"
    
    parts = []
    for unit, divisor in LADDER:
        count = mm // divisors
        if count > 0:
            parts.append(f"{count}{unit}")
        mm %= divisors
    
    return " ".join(parts)
```