#include <bits/stdc++.h>

using namespace std;

const int B = 18, MAX_N = (1 << 19) + 2;
int n, v[MAX_N];
set<int>s, os;

int main()
{
#ifndef ONLINE_JUDGE
	freopen("data.in", "r", stdin);
	freopen("data.out", "w", stdout);
#endif // ONLINE_JUDGE

	scanf("%d", &n);
	int rez = 0;

	for (int i = 1; i <= n; ++i)
		scanf("%d", &v[i]), rez |= v[i];

	sort (v + 1, v + n + 1);
	int nr = 0, ad = 0;

	for (int i = 1; i <= n; ++i)
	{	if (s.find(v[i]) == end(s))
		{	++ad;
			os.clear();

			for (auto ii : s)
				os.insert(ii | v[i]);

			for (auto ii : os)
				s.insert(ii);

			s.insert(v[i]);
		}
	}

	printf("%d", ad);
	return 0;
}