Bounding the number of nonsaturating pushes can be achieved via a potential argument. We use the potential function (i.e. is the sum of the labels of all active nodes). It is obvious that is initially and stays nonnegative throughout the execution of the algorithm. Both relabels and saturating pushes can increase . However, the value of must be equal to 0 at termination since there cannot be any remaining active nodes at the end of the algorithm's execution. This means that over the execution of the algorithm, the nonsaturating pushes must make up the difference of the relabel and saturating push operations in order for to terminate with a value of 0.