from typing import List


def input_until_valid(valid_vals: List[int], message: str = '') -> int:
    """
    Let the user choose an integer value among the given valid ones.
    Ask user again until the input is valid.

    :param valid_vals: a list of acceptable values
    :param message: a message to print before user prompt
    :return: user's choice
    """
    if message:
        print(message)

    val = None

    while val not in valid_vals:
        try:
            val = int(input())

            if val not in valid_vals:
                raise ValueError
        except ValueError:
            print('Please, make a valid choice.')

    return val