@Override
	public int compareTo(MnId sourceId) {
		if(edgeIds.length != sourceId.edgeIds.length) {
			return edgeIds.length - sourceId.edgeIds.length;
		} else {
			int numLower = 0, numGreater = 0;
			int x, y;
			for(int i = 0; i < edgeIds.length; ++i) {
				x = edgeIds[i];
				y = sourceId.edgeIds[i];
				if(x < y) {
					++numLower;
				} else if(x > y) {
					++numGreater;
				}
			}
			
			if(numLower > numGreater) {
				return -1;
			} else if(numLower < numGreater) {
				return 1;
			} else if(numLower == numGreater && numLower != 0) {
				return 1;
			} else {
				return 0;
			}
		}
	}