def makeETCIndex(A: int = 2, m: int = 1):
    """
    Explore-Then-Commit index, see Chapter 6 in [1].

    Parameters
    ----------
    A: int
        Number of arms.

    m : int, default: 1
        Number of exploration pulls per arm.

    Return
    ------
    Callable
        ETC index.

    Dict
        Extra parameters for the BanditTracker object.
        By default the tracker stores the number of pulls and the
        empirical average reward for each arm. If you want it to store
        all rewards for instance, return {'store_rewards': True}.

    References
    ----------
    .. [1] Lattimore, Tor, and Csaba Szepesvári. Bandit algorithms.
            Cambridge University Press, 2020.
    """

    def index(tr):
        return [
            -tr.read_last_tag_value("n_pulls", arm)
            if tr.read_last_tag_value("t") < m * A
            else tr.read_last_tag_value("mu_hat", arm)
            for arm in tr.arms
        ]

    return index, {}