public void push(node nd) { lst.Add(nd); update(lst.Count - 1); }
void swap(node a, node b, int idx, int small_idx) { lst[idx] = b; lst[small_idx] = a; }