@Override
				public A next() {
					Entry<Integer, A> top = getTop(valMap);
					A ret = top.getValue();
					
					Iterator<A> iterator = iterators.get(top.getKey());
					A newValue = !iterator.hasNext() ? null : iterator.next();
					valMap.put(top.getKey(), newValue);
					return ret;
				}