Returns a list of lists. Each list represents tiers of candidates. candidates in earlier
        tiers are preferred to candidates appearing in later tiers. Candidates in the same tier
        are preferred equally.

def getOrderVector(self):
        """
        Returns a list of lists. Each list represents tiers of candidates. candidates in earlier
        tiers are preferred to candidates appearing in later tiers. Candidates in the same tier
        are preferred equally. 
        """

        # We sort the candidates based on the number of incoming edges they have in the graph. If 
        # two candidates have the same number, we assume that they are tied.
        incEdgesMap = self.getIncEdgesMap()
        sortedKeys = sorted(incEdgesMap.keys(), reverse = True)
        orderVector = []
        print(sortedKeys)
        # print("sortedKeys",sortedKeys)
        # print("incEdgesMap", incEdgesMap)
        for key in sortedKeys:
            tier = []
            cands = incEdgesMap[key]
            # print("qq",cands)
            for cand in cands:
                tier.append(cand)
                # print("cand=",cand)
            # print("tier", tier)
            orderVector.append(tier[0])  # replace tier with tier[0]
        return orderVector