#include <bits/stdc++.h>
using namespace std;
void rip() {
  cout << -1;
  exit(0);
}
set<int> st;
set<int> seen;
vector<int> ans;
int main() {
  int N;
  cin >> N;
  for (int i = 1; i <= N; i++) {
    int x;
    cin >> x;
    if (x > 0) {
      if (!seen.insert(x).second) rip();
      st.insert(x);
    } else {
      if (st.find(-x) == st.end()) rip();
      st.erase(-x);
    }
    if (st.empty()) {
      ans.push_back(i);
      seen.clear();
    }
  }
  if (ans.empty() || ans.back() != N) rip();
  assert(st.empty());
  cout << ans.size() << '\n';
  for (int i = 0; i < ans.size(); i++)
    cout << ans[i] - (i == 0 ? 0 : ans[i - 1]) << " ";
}
