#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
int cnt, a[N], ans[N];
set<int> s, vis;
int main() {
  int n, id;
  bool flag = true;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%d", &id);
    if (!s.size()) {
      cnt++;
      vis.clear();
    }
    if (id > 0 && !s.count(id) && !vis.count(id)) {
      vis.insert(id);
      s.insert(id);
    } else if (id < 0 && s.count(-id))
      s.erase(-id);
    else
      flag = false;
    ans[cnt]++;
  }
  if (s.size() || !flag) {
    puts("-1");
    return 0;
  }
  printf("%d\n", cnt);
  for (int i = 1; i <= cnt; i++) printf("%d ", ans[i]);
}
