def aa(m): c=[] while m!=uf[m]: c.append(m);m=uf[m] for i in c: uf[i]=m return m def bb(a,b,k): a,b=aa(a),aa(b);c=aa(0) if a==b: return if c==a or b==c: for i in list(y[a]): ans[i]=k for i in list(y[b]): ans[i]=k y[a]=set();y[b]=set();uf[a]=b return if len(y[a])