def __init__(self, prefix: str, *, size: int = 0, maximize_reuse: bool = False):
        """Initializes `GreedyQubitManager`

        Args:
            prefix: The prefix to use for naming new clean ancillas allocated by the qubit manager.
                    The i'th allocated qubit is of the type `cirq.NamedQubit(f'{prefix}_{i}')`.
            size: The initial size of the pool of ancilla qubits managed by the qubit manager. The
                    qubit manager can automatically resize itself when the allocation request
                    exceeds the number of available qubits.
            maximize_reuse: Flag to control a FIFO vs LIFO strategy, defaults to False (FIFO).
        """
        self._prefix = prefix
        self._used_qubits: set[cirq.Qid] = set()
        self._free_qubits: list[cirq.Qid] = []
        self._size = 0
        self.maximize_reuse = maximize_reuse
        self.resize(size)
Initializes `GreedyQubitManager`

        Args:
            prefix: The prefix to use for naming new clean ancillas allocated by the qubit manager.
                    The i'th allocated qubit is of the type `cirq.NamedQubit(f'{prefix}_{i}')`.
            size: The initial size of the pool of ancilla qubits managed by the qubit manager. The
                    qubit manager can automatically resize itself when the allocation request
                    exceeds the number of available qubits.
            maximize_reuse: Flag to control a FIFO vs LIFO strategy, defaults to False (FIFO).
        
cirq-core/cirq/ops/greedy_qubit_manager.py