```ts
export function menuPick(dishes: { name: string; price: number }[], budget: number): string[] {
    if (budget < 0) throw new Error('Budget must be non-negative');

    const affordableDishes = dishes.filter(dish => dish.price <= budget);

    affordableDishes.sort((a, b) => a.price === b.price ? a.name.localeCompare(b.name) : a.price - b.price);

    return affordableDishes.map(dish => dish.name);
}
```