#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  cin >> n;
  int a[n + 1];
  stack<int> st;
  for (int i = 1; i <= n; i++) cin >> a[i];
  for (int i = 1; i <= n; i++) {
    if (st.empty()) {
      st.push(a[i]);
      continue;
    }
    int k = a[i];
    while (!st.empty() && k == st.top()) {
      st.pop();
      k++;
    }
    st.push(k);
  }
  cout << st.size() << endl;
  vector<int> res;
  while (!st.empty()) {
    res.push_back(st.top());
    st.pop();
  }
  reverse(res.begin(), res.end());
  for (int i : res) cout << i << " ";
}
