      "        self.last_stack = None\n",
      "\n",
      "    def push(self, data):\n",
      "        if self.last_stack is None or self.last_stack.is_full():\n",
      "            self.last_stack = StackWithCapacity(None, self.capacity)\n",
      "            self.stacks.append(self.last_stack)\n",
      "        self.last_stack.push(data)\n",
      "\n",
      "    def pop(self):\n",
      "        if self.last_stack is None:\n",
 
</s> remove     "    def __init__(self, capacity):\n",
    "        self.capacity = capacity\n",
 </s> add     "    def __init__(self, indiv_stack_capacity):\n",
    "        self.indiv_stack_capacity = indiv_stack_capacity\n", </s> remove     "            num_stacks = len(self.stacks)\n",
 </s> add  </s> remove     "    def __init__(self, capacity):\n",
 </s> add     "    def __init__(self, indiv_stack_capacity):\n", </s> remove     "        stacks = SetOfStacks(capacity=2)\n",
 </s> add     "        stacks = SetOfStacks(indiv_stack_capacity=2)\n", </s> remove     "* Space: O(m), where m is the size of the new stack\n",
 </s> add     "* Space: O(m), where m is the size of the new stack if the last stack is full\n",
    "            self.last_stack = StackWithCapacity(None, self.indiv_stack_capacity)\n",
      "        self.last_stack = None\n",
      "\n",
      "    def push(self, data):\n",
      "        if self.last_stack is None or self.last_stack.is_full():\n",
    "            self.last_stack = StackWithCapacity(None, self.indiv_stack_capacity)\n",
      "            self.stacks.append(self.last_stack)\n",
      "        self.last_stack.push(data)\n",
      "\n",
      "    def pop(self):\n",
      "        if self.last_stack is None:\n",
keep keep keep keep replace keep keep keep keep keep
 Polish set of stacks challenge and solution (#73)

Update constraints, algorithm discussion, and code. 
stacks_queues/set_of_stacks/set_of_stacks_solution.ipynb