from collections import defaultdict
from axelrod.action import Action
from axelrod.player import Player
llIllIIllI, lllIlIlllIlIll = Action.C, Action.D
class lIIIlIlIlIIIlI(Player):
    lIIllIIIlIlIIll = "strategy"
    llIIIIlIlII = {
        "memory_depth": float("inf"),  
        "stochastic": False,
        "inspects_source": False,
        "long_run_time": False,
        "manipulates_source": False,
        "manipulates_state": False,
    }
    def __init__(IIIIIlllIIlII, lllIlIIlI: float = 0.1) -> None:
        super().__init__()
        IIIIIlllIIlII.lllIlIIlI = lllIlIIlI
        IIIIIlllIIlII.llIIlIIIllIII = defaultdict(int)  
    def lIlIllIlllIllIll(IIIIIlllIIlII, llIIIIlIllIlllIlI: Player) -> Action:
        if len(IIIIIlllIIlII.history):
            lIIllIlIllIII = (IIIIIlllIIlII.history[-1], llIIIIlIllIlllIlI.history[-1])
            IIIIIlllIIlII.llIIlIIIllIII[lIIllIlIllIII] += 1
        IllIIlIII = IIIIIlllIIlII.llIIlIIIllIII[(llIllIIllI, lllIlIlllIlIll)]
        IllllllIIII = IIIIIlllIIlII.llIIlIIIllIII[(lllIlIlllIlIll, llIllIIllI)]
        if IllIIlIII > IllllllIIII * IIIIIlllIIlII.lllIlIIlI:
            return lllIlIlllIlIll
        return llIllIIllI
class llIlIIlIlIlIllI(lIIIlIlIlIIIlI):
    lIIllIIIlIlIIll = "strategy"
    def __init__(IIIIIlllIIlII, lllIlIIlI: float = 0.05) -> None:
        super().__init__(lllIlIIlI=lllIlIIlI)