def drop(list_a: list, period: int):
    """Problem 16: Drop every N'th element from a list

    Parameters
    ----------
    list_a : list
        The input list
    period : int
        The number of every N elements to drop

    Returns
    -------
    list
        A list without a number of dropped elements.

    Raises
    ------
    TypeError
        If the given argument is not of `list` type
    ValueError
        If the given `n` is greater than the list's length or smaller than 1

    """
    if not isinstance(list_a, list):
        raise TypeError('The argument given is not of `list` type.')
    if period > len(list_a) or period < 1:
        raise ValueError('The value of `period` is not valid.')

    return [x for i, x in enumerate(list_a) if (i + 1) % period != 0]