class LC1209(object):
    def removeDuplicates(self, s, k):
        stack = []
        count = 0
        
        for c in s:

            if stack and c == stack[-1][0]:
                prev = stack.pop()[1]
                stack.append((c, prev + 1))
                
                if prev + 1 == k:
                    stack.pop()
            else:
                count = 1
                stack.append((c, count))
        
        result = ''
        for char, count in stack:
            result += char * count
        
        return result