#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
const int mod = 1e9 + 7;
vector<char> v;
void solve() {
  long long n, m, i, j, k, l, r, p, x, y, z, a, b, c;
  long long mx = LLONG_MAX, mn = LLONG_MIN, cnt = 0, ans = 0;
  cin >> n;
  v.resize(2 * n);
  vector<int> nums;
  for (i = 0; i < 2 * n; i++) {
    cin >> v[i];
    if (v[i] == '-') {
      cin >> a;
      nums.push_back(a);
    }
  }
  stack<int> st;
  vector<int> res;
  bool f = 1;
  j = n - 1;
  for (i = 2 * n - 1; i >= 0; i--) {
    if (v[i] == '+') {
      cnt++;
      if (cnt > 0) {
        f = false;
        break;
      }
      res.push_back(st.top());
      st.pop();
    } else {
      cnt--;
      st.push(nums[j]);
      j--;
    }
  }
  reverse(res.begin(), res.end());
  set<int> s;
  j = 0;
  k = 0;
  for (i = 0; i < 2 * n; i++) {
    if (v[i] == '+') {
      s.insert(res[j]);
      j++;
    } else {
      if (*s.begin() != nums[k]) {
        f = 0;
        break;
      } else {
        s.erase(s.begin());
        k++;
      }
    }
  }
  if (f) {
    cout << "YES"
         << "\n";
    for (int zzz = 0; zzz < res.size(); zzz++) cout << res[zzz] << " ";
    cout << "\n";
  } else
    cout << "NO"
         << "\n";
}
int main() {
  int t;
  solve();
}
