class Person():

    def __init__(self,firstName,lastName):
        self.firstName=firstName
        self.lastName=lastName

    def getFirstName(self):
        return self.firstName

    def getLastName(self):
        return self.lastName

    def __str__(self):
        return self.lastName+", "+self.firstName

    def saySomething(self, toWhom,something):
        return "Hello "+toWhom.firstName+" "+something

    def sing(self,toWhom,something,song):
        return self.saySomething(toWhom, something) + song

class HGSperson(Person):

    IDnum=0

    def __init__(self,firstName,lastName):
        Person.__init__(self,firstName,lastName)
        HGSperson.IDnum=HGSperson.IDnum+1
        self.ID = HGSperson.IDnum

    def whoAmI(self):
        return "I am an HGS Person!"

    def getID(self):
        return self.ID

class Student(HGSperson):

    standing=[0,"freshman","sophomore","junior","senior"]

    def __init__(self,firstName,lastName,year):
        HGSperson.__init__(self,firstName,lastName)
        self.year=year

    def getYear(self):
        return Student.standing[self.year]

    def getFirstName(self):
        return self.firstName+"! I am an HGS Student."

    def saySomething(self,something):
        return something+" Being an HGS student is GREAT!"

class Faculty(HGSperson):

    def __init__(self,first,last,rank):
        HGSperson.__init__(self,first,last)
        self.rank=rank

    def getRank(self):
        return self.rank