protected IntIntPair advance() {
IntIntPair min = null;
PairSortedGeneratorInterface best = null;
for (PairSortedGeneratorInterface gen : this.generators) {
IntIntPair n = gen.current();
if (n != null && (min == null || n.compareTo(min) < 0)) {
min = n;
best = gen;
}
}
// advance best generator