```python
def take_back(values: list, target: int) -> int:
    """
    Take entries from the end of the list toward its start, return how many must be taken
    before their total reaches a target. Return minus one when the whole list never reaches it.
    
    :param values: List of integers to be taken from.
    :param target: Integer target to be reached by the total of the taken entries.
    :return: Number of entries to take, or -1 if the target is not reached.
    """
    total = 0
    count = 0
    for i in range(len(values) - 1, -1, -1):
        total += values[i]
        count += 1
        if total >= target:
            return count - 1
    return -1
```