#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll setE(vector<int>&a){
map<ll,ll>mp;
for(int num : a){
mp[num]++;
}
ll seti = 0;
for(auto it:mp){
ll x = it.first;
ll y = it.second;
if(y%2 !=0)seti++;
if(y/2 > 0)mp[x+1]+=y/2;
}
return seti;
}
int main() {
int n;
cin>>n;
vector<int>a(n);
for(int i = 0;i<n ;i++){
cin>>a[i];
}
ll ans = setE(a);
cout<<ans<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1c2luZyBsbCA9IGxvbmcgbG9uZzsKCmxsIHNldEUodmVjdG9yPGludD4mYSl7CgltYXA8bGwsbGw+bXA7CgkKCWZvcihpbnQgbnVtIDogYSl7CgkJbXBbbnVtXSsrOwoJfQoJbGwgc2V0aSA9IDA7Cglmb3IoYXV0byBpdDptcCl7CgkJbGwgeCA9IGl0LmZpcnN0OwoJCWxsIHkgPSBpdC5zZWNvbmQ7CgkJCgkJaWYoeSUyICE9MClzZXRpKys7CgkJCgkJaWYoeS8yID4gMCltcFt4KzFdKz15LzI7Cgl9CglyZXR1cm4gc2V0aTsKfQppbnQgbWFpbigpIHsKIGludCBuOwogY2luPj5uOwogCiB2ZWN0b3I8aW50PmEobik7CiAKIGZvcihpbnQgaSA9IDA7aTxuIDtpKyspewogCWNpbj4+YVtpXTsKIH0KIGxsIGFucyA9IHNldEUoYSk7CiBjb3V0PDxhbnM8PGVuZGw7CglyZXR1cm4gMDsKfQ==