#include <bits/stdc++.h>
using namespace std;
long long i, j, t, n;
vector<long long> v;
long long x[200005];
int main() {
  cin >> n;
  for (i = 0; i < n; i++) cin >> x[i];
  v.push_back(x[0]);
  for (i = 1; i < n; i++) {
    if (v[v.size() - 1] == x[i]) {
      v[v.size() - 1]++;
      while (v[v.size() - 2] == v[v.size() - 1]) {
        v[v.size() - 2]++;
        v.erase(v.begin() + v.size() - 1);
      }
    } else
      v.push_back(x[i]);
  }
  cout << v.size() << endl;
  for (i = 0; i < v.size(); i++) {
    cout << v[i] << ' ';
  }
  cout << endl;
  return 0;
}
