#include <bits/stdc++.h>
using namespace std;
set<int> s1, s2;
vector<int> c(200100), ans(100100);
vector<pair<char, int> > v(200100);
int main() {
  int n, m, k, a[100100], x, j = 0;
  char b;
  cin >> n;
  for (int i = 0; i < 2 * n; i++) {
    cin >> b;
    if (b == '-') {
      cin >> x;
      a[x] = i;
      v[i] = {'-', x};
    } else {
      s1.insert(i);
      v[i].first = '+';
      c[i] = j++;
    }
  }
  for (int i = 1; i <= n; i++) {
    set<int>::iterator it = s1.upper_bound(a[i]);
    if (it == s1.begin()) {
      cout << "NO\n";
      return 0;
    }
    it--;
    m = c[*it];
    ans[m] = i;
    s1.erase(it);
  }
  j = 0;
  for (int i = 0; i < 2 * n; i++) {
    if (v[i].first == '+') {
      s2.insert(ans[j++]);
    } else {
      int y = *s2.begin();
      if (y != v[i].second) {
        cout << "NO\n";
        return 0;
      }
      s2.erase(s2.begin());
    }
  }
  cout << "YES\n";
  for (int i = 0; i < n; i++) cout << ans[i] << ' ';
  cout << '\n';
  return 0;
}
