```python
def pick_lane(queues: list, closed: list) -> int:
    if not queues or not all(isinstance(q, int) for q in queues):
        raise ValueError("Invalid queues argument")
    if any(not isinstance(c, int) or c < 0 for c in closed):
        raise ValueError("Invalid closed index argument")
    if len(queues) != len(closed):
        raise ValueError("Closed list must have the same length as queues")

    best = 0
    for lane in range(len(queues)):
        if queues[lane] <= queues[best] and lane not in closed:
            best = lane

    return best
```