#P1401. 超集

超集

题目描述

我们称正整数AA包含BB,当且仅当(AB)=A(A|B)=A,表示按位或运算,即BB中的所有为11的二进制位,在AA中都为11

现在给定nn个正整数a1,a2,...ana_1,a_2,...a_n,请你从中选出尽量少的整数,使得所有aia_i都至少被一个你选出来的整数包含。

显然任何一个数总是包含其自身,即选择全部的数必定为一组合法答案(但不一定是最少的)。

输入描述

第一行一个正整数n(1n2×105)n(1\le n\le 2\times 10^5),表示数组长度。

接下来一行nn个整数,第ii个整数表示ai(1ai105)a_i(1\le a_i\le 10^5)

输出描述

一行一个整数,表示至少需要选出几个数字。

样例1

输入

5
3 7 6 8 4

输出

2

样例解释

选择数字7788,因为3=(011)23=(011)_2,4=(100)24=(100)_2,6=(110)26=(110)_2

因此7=(111)27=(111)_2均包含这些数字(它们的每一个为11的二进制位,在77中对应的位置上都为11)。

8=(1000)28=(1000)_288包含。

样例2

输入

8
4 12 16 3 11 7 9 8

输出

4