AT_pakencamp_2020_day1_m 貢ぎ物

Description

[problemUrl]: https://atcoder.jp/contests/pakencamp-2020-day1/tasks/pakencamp_2020_day1_m 配点 : $ 600 $ 点 ペンギンは $ N $ 個の正整数 $ A_1,\ A_2,\ldots,\ A_N $ が入った箱を持っています。彼はこの箱に対して、以下の操作を $ 0 $ 回以上好きなだけ行うことができます。 - 箱から好きな要素を重複を許して $ 2 $ つ選び、それらの bit ごとの論理和を箱に加える。選んだ $ 2 $ 整数は箱に入ったままである。 ペンギンはこの操作を繰り返したあと、持っている箱を kaage にプレゼントすることにしました。 kaage は色んな種類の整数を見るのが好きなので、箱に入っている整数の種類が多ければ多いほど喜びます。 ペンギンは上記の操作を繰り返すことで、箱に入っている整数の種類数をいくつまで増やせるでしょうか? 論理和の定義は[こちら](https://ja.wikipedia.org/wiki/%E8%AB%96%E7%90%86%E5%92%8C#:~:text=%E6%95%B0%E7%90%86%E8%AB%96%E7%90%86%E5%AD%A6%E3%81%AB%E3%81%8A%E3%81%84%E3%81%A6%E8%AB%96%E7%90%86,P%20%E3%81%BE%E3%81%9F%E3%81%AF%20Q%E3%80%8D%E3%81%A8%E8%AA%AD%E3%82%80%E3%80%82) を参照してください。

Input Format

入力は以下の形式で標準入力から与えられます。 ``` \(N\) \(A_1\) \(A_2\) \(\ldots\) \(A_N\) ```

Output Format

最終的に箱に入っている整数の種類数の最大値を出力してください。 出力の最後に改行を忘れないでください。