class Maya:
    def __init__(self):
        self.nombre = []
        
    def ajouter(self, chiffre):
        """ chiffre est une liste de longueur 3.
        La méthode empile le chiffre au sommet de la pile """
        self.nombre.append(chiffre)
            
    def retirer(self):
        """ depile et renvoie le chiffre qui etait au sommet de
            la pile """
        if not self.estVide():
            return self.nombre.pop()
            
    def estVide(self):
        return self.nombre == []
        
    def nbEtages(self):
        """ renvoie le nombre de chiffres de la pile """
        return len(self.nombre)
        
    def MayaToDec(self):
        """ renvoie le nombre entier correspondant a la
        modelisation Maya de l'instance courante """
        coeff = 20**(self.nbEtages() - 1)
        ch_Dec = 0
        while not self.estVide() :
            ch_Maya = self.retirer()
            ch_Dec = ch_Dec + (valeurChiffre(ch_Maya)) * coeff
            coeff = coeff // 20
        return ch_Dec
        
    def multiplie(self):
        """ renvoie le resultat de la multiplication par 20 d'un
        nombre en modelisation Maya. """
        result = Maya()
        result.nombre = [[1,0,0]] + self.nombre
        return result
        
    def somme(self, maya2):
        """ ajoute maya2 à l'instance courante et renvoie le
        resultat en modelisation Maya """
        if self.nbEtages() != maya2.nbEtages():
            return None
        result = Maya()
        ret = 0
        while not self.estVide():
            ch1 = self.retirer()
            ch2 = maya2.retirer()
            ch_somme, ret = mystere(ch1, ch2, ret)
            result.ajouter(ch_somme)
        return result

def valeurChiffre(L):
    return L[1] + 5 * L[2]

M = Maya()
M.ajouter([0,0,3])
M.ajouter([0,1,2])
M.ajouter([0,3,1])
print( M.MayaToDec() )
