#include <bits/stdc++.h>
using namespace std;
int main(int argc, char *argv[]) {
  long long n, i;
  scanf("%lld", &n);
  ;
  set<long long> P;
  set<long long> SS;
  vector<long long> S(n);
  for (i = (0); i < (2 * n); ++i) {
    char buf[1000];
    scanf("%s", buf);
    if (buf[0] == '+') {
      P.insert(i);
    } else {
      assert(buf[0] == '-');
      long long x;
      scanf("%lld", &x);
      ;
      S[x - 1] = i;
      SS.insert(i);
    }
  }
  vector<pair<long long, long long> > T(n);
  for (i = (0); i < (n); ++i) {
    long long s = S[i];
    auto lb = P.lower_bound(s);
    if (lb == P.begin()) {
      printf("NO\n");
      return 0;
    }
    lb--;
    T[i] = {*lb, i + 1};
    auto p1 = SS.lower_bound(*lb);
    assert(p1 != SS.end());
    if (*p1 != S[i]) {
      printf("NO\n");
      return 0;
    }
    SS.erase(p1);
    P.erase(lb);
  }
  printf("YES\n");
  sort((T).begin(), (T).end());
  for (i = (0); i < (n); ++i) {
    if (i != 0) {
      printf(" ");
    }
    printf("%lld", T[i].second);
  }
  printf("\n");
  return 0;
}
