```python
from typing import List

def live_count(neighbours: List[int]) -> int:
    """
    Returns how many of a cell's given neighbours are alive.
    
    Args:
    neighbours: A list of integers representing the neighbours of the cell.
    
    Returns:
    The count of alive neighbours.
    """
    return sum(neighbour for neighbour in neighbours if neighbour == 1)

def live_next(alive: bool, neighbours: List[int]) -> bool:
    """
    Determines whether the cell is alive in the next round.
    
    Args:
    alive: A boolean indicating whether the cell is currently alive.
    neighbours: A list of integers representing the neighbours of the cell.
    
    Returns:
    True if the cell survives, False if it dies.
    """
    count = live_count(neighbours)
    if alive and count in [2, 3]:
        return True
    elif not alive and count == 3:
        return True
    else:
        return False
```