def _get_change_making_matrix(c: int, n: int) -> list:
    """Returns a list of c + 1 lists of size n + 1. Each of the c + 1 inner
    lists contains zeros, except for the first one, where each element is
    initialized to its index, because we assume that the first coin is 1 and
    it is always available, so that there's always a way to total n. Note that
    the list of coins given may already contain 1 as one of its denominations,
    but we do not know this, in general."""
    m = [[0 for _ in range(n + 1)] for _ in range(c + 1)]

    for i in range(n + 1):
        # m[0], the first list of m, is associated with the usage of the
        # denomination 1, which we assume is always available. So, using
        # denomination 1, we can total i using i 1s.
        m[0][i] = i

    return m