```python
def fit_budget(prices: list, budget: int) -> int:
    """
    Given a list of item prices and a budget, return the maximum number of items
    that can be bought without exceeding the budget. Each item can be bought once.
    Raise ValueError if the budget is below zero.
    """
    if budget < 0:
        raise ValueError("Budget cannot be below zero.")
    
    # Sort the prices in ascending order
    prices.sort()
    
    # Initialize the count of items bought
    count = 0
    
    # Iterate over the sorted prices
    for price in prices:
        # Check if the current price is within the budget
        if price <= budget:
            # Subtract the price from the budget
            budget -= price
            # Increment the count of items bought
            count += 1
    
    return count
```