#include <bits/stdc++.h>
using namespace std;
void boost() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
}
template <typename T>
void take(vector<T>& v) {
  for (T& val : v) cin >> val;
}
void solve() {}
template <typename T>
void show(vector<T>& v, string end = " ", string after = "\n") {
  for (T& val : v) cout << val << end;
  cout << after;
}
int main() {
  boost();
  int n;
  cin >> n;
  vector<string> v(2 * n);
  for (string& e : v) {
    cin >> e;
    if (e == "+") continue;
    cin >> e;
  }
  vector<int> places{};
  vector<int> ans(2 * n, 0);
  for (int i = 0; i < (int)(v.size()); i++) {
    if (v.at(i) == "+")
      places.push_back(i);
    else {
      if ((int)(places.size()) == 0) {
        cout << "NO" << endl;
        return (0);
      }
      ans.at(places.back()) = stoi(v.at(i));
      places.pop_back();
    }
  }
  set<int> s{};
  for (int i = 0; i < (int)(ans.size()); i++) {
    if (ans.at(i) == 0) {
      int num = stoi(v.at(i));
      if ((int)(s.size()) == 0 || *s.begin() != num) {
        cout << "NO" << endl;
        return (0);
      }
      s.erase(s.begin());
    } else
      s.insert(ans.at(i));
  }
  cout << "YES" << endl;
  for (int i = 0; i < (int)(ans.size()); i++)
    if (ans.at(i) != 0) cout << ans.at(i) << " ";
  cout << endl;
  return (0);
}
