class Compressor:
    def init(level):
        buffer = List(level*2)

    def add(element):
        tmp = None
        if not element:
            return tmp

        if len(buffer) == level*2:
            tmp = buffer.pop(0)
        
        buffer.append(element)

        analyse()
        return tmp

    def analyse():
        if buffer[0:half] == buffer[half:]:
            update_counters()
            buffer = buffer[0:half]

    def update_counters():
        for i in range(0:level):
            buffer[i].counter += buffer[i+level].counter