#include <bits/stdc++.h>
using namespace std;
const int N = 3e5 + 123, bs = 500;
const long long INF = 1e15;
set<int> st;
int n, sf[N], b[N], a[N];
vector<pair<int, int> > ans;
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  for (int i = 1; i <= 2 * n; i++) {
    char x;
    cin >> x;
    if (x == '+') {
      b[i] = 1;
    } else {
      int y;
      cin >> y;
      a[y] = i;
    }
    st.insert(i);
  }
  cerr << "was\n";
  for (int i = 1; i <= n; i++) {
    st.erase(a[i]);
    set<int>::iterator it = st.upper_bound(a[i]);
    if (it == st.begin()) {
      cout << "NO";
      return 0;
    }
    it--;
    if (!b[*it]) {
      cout << "NO";
      return 0;
    }
    ans.push_back(make_pair(*it, i));
    st.erase(it);
  }
  sort(ans.begin(), ans.end());
  cout << "YES\n";
  for (pair<int, int> v : ans) cout << v.second << " ";
}
