def popAt(self, index):
        if index >= 0 and index < len(self.Stacks):
            result = self.Stacks[index].pop()

            arrs = []
            newIndex = index
            while newIndex < len(self.Stacks):

                arr = self.Stacks[newIndex].returnAsArray()
                arrs.append(arr)
                newIndex += 1
            #print(arrs)
            newIndex = 0

            while newIndex < len(arrs):
                j = index + 1
                if j < len(arrs):
                    itemToAdd = arrs[j].pop(0)
                    #  print(itemToAdd, arrs[j])
                    arrs[newIndex].append(itemToAdd)
                stack = Stack()
                stack.generateFromArray(arrs[newIndex])
                self.Stacks[index] = stack

                newIndex += 1
                index += 1
            #print (arrs)
            return result

        else:
            raise Exception("Bad Index")