#include <bits/stdc++.h>

using namespace std;

int n , i , val , y , x , j , moves;
set < int > my[22] , my0 , aux;
set < int > :: iterator it;
vector < int > sol;

int main()
{

//freopen("input" , "r" , stdin);
//freopen("output" , "w" , stdout);

cin >> n;
for (i = 1 ; i <= n ; ++i)
{
    cin >> val;
    for (j = 0 ; (1 << j) <= val ; ++j)
    my[j].insert(i);
}

sort(my , my + 20);

for (i = 0 ; i <= 20 ;)
{
    if (my[i].size() == 0) {i++; continue;}
    my0 = my[i];
    while (i <= 20 && my0 == my[i]) i++;
    moves++;
}

cout << moves << '\n';

return 0;
}