#include <bits/stdc++.h>
using namespace std;
const long long M = 1000000000;
int n;
vector<int> v(1000000);
stack<int> s;
inline void input() {
  cin >> n;
  for (int i = 0; i < n; i++) {
    scanf("%d", &v[i]);
  }
}
inline void do_stuff() {
  sort(v.begin(), v.begin() + n);
  s.push(v[n - 1]);
  for (int i = n - 2, t; i >= 0; i--) {
    t = v[i];
    while (s.size() && s.top() == t) {
      t++;
      s.pop();
    }
    s.push(t);
  }
}
inline void output() { cout << s.size() << endl; }
int main() {
  input();
  do_stuff();
  output();
  return 0;
}
