Separating components which are merged during Union operation for next AND value .
x = i NEW_LINE while x <= n : NEW_LINE INDENT W . sz [ x ] = 1 ; NEW_LINE W . id [ x ] = x ; NEW_LINE x = ( i | ( x + 1 ) ) NEW_LINE DEDENT return ans ; NEW_LINE