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