class Student():
    def __init__(self, aNumber, *allMentors):
        allMentors = list(allMentors)
        self._canSetMentors = None
        self._mentors = None
        self._number = None
        self._number = aNumber
        self._canSetMentors = True
        self._mentors = []
        didAddMentors = self.setMentors(*allMentors)
        if not didAddMentors :
            raise RuntimeError ("Unable to create Student, must have 3 or fewer mentors, no duplicates. See http://manual.umple.org?RE001ViolationofImmutability.html")

    def getNumber(self):
        return self._number

    def getMentor(self, index):
        aMentor = self._mentors[index]
        return aMentor

    def getMentors(self):
        newMentors = tuple(self._mentors)
        return newMentors

    def numberOfMentors(self):
        self._number = len(self._mentors)
        return self._number

    def hasMentors(self):
        has = len(self._mentors) > 0
        return has

    def indexOfMentor(self, aMentor):
        index = (-1 if not aMentor in self._mentors else self._mentors.index(aMentor))
        return index

    @staticmethod
    def minimumNumberOfMentors():
        return 0

    @staticmethod
    def maximumNumberOfMentors():
        return 3

    def setMentors(self, *newMentors):
        newMentors = list(newMentors)
        wasSet = False
        if not self._canSetMentors :
            return False
        self._canSetMentors = False
        verifiedMentors = []
        for aMentor in newMentors:
            if (aMentor) in verifiedMentors :
                continue
            verifiedMentors.append(aMentor)

        if len(verifiedMentors) != len(newMentors) or len(verifiedMentors) > Student.maximumNumberOfMentors() :
            return wasSet
        self._mentors.clear()
        self._mentors.extend(verifiedMentors)
        wasSet = True
        return wasSet

    def delete(self):
        pass

    def __str__(self):
        return str(super().__str__()) + "[" + "number" + ":" + str(self.getNumber()) + "]"


class Mentor():
    def __init__(self, aName):
        self._name = None
        self._name = aName

    def getName(self):
        return self._name

    def delete(self):
        pass

    def __str__(self):
        return str(super().__str__()) + "[" + "name" + ":" + str(self.getName()) + "]"