#include <iostream>

using namespace std;


int main() {

	int n;

	cin>>n;
	
	int a; 
	int max=0;//maksymalna potega
	int maxp=0;//odp - maksymalna potega dwojki
	unsigned long long spot=1;//wielkosci pot 2
	int maxpi = 0;//kandydat na maksymalna potege
	
	int tab[201719];//tablica do przechowywania ilosci danych poteg
	for( int i = 0; i < 201719; ++i )
 	{
 		tab[i]=0;	
 	}
	for( int i = 0; i < n; ++i )
 	{
 		cin>>a;
 		tab[a]++; 
		 if(a>max) max=a;	
		 //cout<<a<<" "<<tab[a]<<endl;	
 	} 
 		
 	//schemat hornera dla x=2

	unsigned long long suma;//ilosc oszczedności
	suma = tab[0];
	for(int i = max; i >= 0; --i)
	{
		suma = tab[i] + 2*suma;
		
		//sprawdzanie potegi dwojki nie przekraczajacej liczby	
		spot = spot*2;
		//cout<<suma<<" "<<spot<<endl;
		maxpi++;//kolejna potega
		if(suma>=spot)
		{
			maxp = maxpi;	
		}	
	}

	if(spot>suma)//iść w dol
	{
		while(spot>suma)
		{
			spot = spot/2;
			if(spot>=suma)
				maxpi--;
		}
		maxp=maxpi;
	}
	else//isc w gore
	{
		while(spot<suma)
		{
			spot = spot*2;
			if(spot<=suma)
			maxpi++;
		}
		maxp=maxpi;
	}
 	cout<<maxp;
 	
 	return 0;
}
