\begin{algorithm}
        \caption{D-ary Heap Insert and Increase Key}
        \begin{algorithmic}
        \PROCEDURE{D-MaxHeapInsert}{$A, key$}
            \STATE $A.\text{heap-size} = A.\text{heap-size} + 1$
            \STATE $A[A.\text{heap-size}] = -\infty$
            \STATE \CALL{D-HeapIncreaseKey}{$A, A.\text{heap-size}, key$}
        \ENDPROCEDURE
        \STATE
        \PROCEDURE{D-HeapIncreaseKey}{$A, i, key$}
            \IF{$key < A[i]$}
                \STATE \textbf{error} "new key is smaller than current key"
            \ENDIF
            \STATE $A[i] = key$
            \WHILE{$i > 1$ \AND $A[$\CALL{D-Parent}{$i$}$] < A[i]$}
                \STATE exchange $A[i]$ with $A[$\CALL{D-Parent}{$i$}$]$
                \STATE $i =$ \CALL{D-Parent}{$i$}
            \ENDWHILE
        \ENDPROCEDURE
        \end{algorithmic}
        \end{algorithm}