#define it std::set<node>::iteratorvoidupdate(int l, int r){
it R = split(r);
it L = split(i);
for (it i = L; i != R;) {
it j = std::next(i);
ll tr = i->r;
while (j != R && i->b == j->b) {
tr = j->r;
j = s.erase(j);
}
i->r = tr;
/* update... */
i = j;
}
}