#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define _ ios::sync_with_stdio(false);
#define mem(x,a) memset(x,(a),(int)(sizeof(x)))
#define pii pair<int,int>
#define fr(i,a,n) for(int i=(a);i<=(n);i++)
#define frd(i,a,n) for(int i=(a);i>=(n);i--)
#define bitcount __builtin_popcount
#define ison(a,b) (a&(1<<b))
#define s(n) scanf("%d",&(n))
#define sl(n) scanf("%lld",&(n))
#define nl cout<<endl
#define pb push_back
#define mp make_pair
#define F first
#define S second
#define V vector
ll mod=1e9+7;
int a[1000005],temp[1000005];
int main() {
int n;
cin>>n;
fr(i,1,n)cin>>a[i];
fr(i,1,n)temp[a[i]]++;
int next=0;
fr(i,0,1000000)
{
temp[i+1]+= temp[i]/2;
temp[i]%=2;
}
int ans=0;
fr(i,0,1000000)ans+=temp[i];
cout<<ans<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nIAojZGVmaW5lIF8gaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwojZGVmaW5lIG1lbSh4LGEpIG1lbXNldCh4LChhKSwoaW50KShzaXplb2YoeCkpKQojZGVmaW5lIHBpaSBwYWlyPGludCxpbnQ+CiNkZWZpbmUgZnIoaSxhLG4pIGZvcihpbnQgaT0oYSk7aTw9KG4pO2krKykKI2RlZmluZSBmcmQoaSxhLG4pIGZvcihpbnQgaT0oYSk7aT49KG4pO2ktLSkKI2RlZmluZSBiaXRjb3VudCBfX2J1aWx0aW5fcG9wY291bnQKI2RlZmluZSBpc29uKGEsYikgKGEmKDE8PGIpKQojZGVmaW5lIHMobikgc2NhbmYoIiVkIiwmKG4pKSAKI2RlZmluZSBzbChuKSBzY2FuZigiJWxsZCIsJihuKSkKI2RlZmluZSBubCBjb3V0PDxlbmRsCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgbXAgbWFrZV9wYWlyIAojZGVmaW5lIEYgZmlyc3QgCiNkZWZpbmUgUyBzZWNvbmQKI2RlZmluZSBWIHZlY3RvcgpsbCBtb2Q9MWU5Kzc7CmludCBhWzEwMDAwMDVdLHRlbXBbMTAwMDAwNV07CmludCBtYWluKCkgewoJaW50IG47CgljaW4+Pm47CglmcihpLDEsbiljaW4+PmFbaV07CglmcihpLDEsbil0ZW1wW2FbaV1dKys7CglpbnQgbmV4dD0wOwoJZnIoaSwwLDEwMDAwMDApCgl7CgkJdGVtcFtpKzFdKz0gdGVtcFtpXS8yOwoJCXRlbXBbaV0lPTI7Cgl9CglpbnQgYW5zPTA7CglmcihpLDAsMTAwMDAwMClhbnMrPXRlbXBbaV07Cgljb3V0PDxhbnM8PGVuZGw7CglyZXR1cm4gMDsKfQ==