#include <bits/stdc++.h>
using namespace std;
priority_queue<int> que;
int stark[10000000], a[10000000], n;
int x, y, ans;
int main() {
  scanf("%d", &n);
  ans = 0;
  for (int i = 1; i <= n; i++) {
    scanf("%d", &a[i]);
    que.push(-a[i]);
  }
  while (!que.empty()) {
    x = que.top();
    x = -x;
    que.pop();
    if (que.empty()) {
      ans++;
      break;
    }
    y = que.top();
    y = -y;
    if (x == y) {
      x++;
      que.pop();
      que.push(-x);
    } else
      ans++;
  }
  printf("%d", ans);
}
