#include <bits/stdc++.h>
using namespace std;
int n, x;
stack<int> s, t;
int ntt() {
  int lol = s.top();
  s.pop();
  int njir = s.top();
  s.push(lol);
  return njir;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  while (n--) {
    cin >> x;
    s.push(x);
    while (s.size() > 1 && s.top() == ntt()) {
      x = s.top();
      s.pop();
      s.pop();
      s.push(x + 1);
    }
  }
  cout << s.size() << '\n';
  while (!s.empty()) {
    t.push(s.top());
    s.pop();
  }
  while (!t.empty()) {
    cout << t.top();
    t.pop();
    cout << (t.empty() ? '\n' : ' ');
  }
  return 0;
}
