#include <bits/stdc++.h>
int n;
char s[5];
char a[200010];
int b[200010];
std::stack<int> sta;
int ans[100010];
int main() {
  scanf("%d", &n);
  for (int i = 0; i < 2 * n; ++i) {
    scanf("%s", s);
    if (s[0] == '+') {
      a[i] = '+';
    } else {
      a[i] = '-';
      int x;
      scanf("%d", &x);
      b[i] = x;
    }
  }
  while (!sta.empty()) {
    sta.pop();
  }
  bool flag = true;
  int cnt = 0;
  for (int i = 2 * n - 1; i >= 0; --i) {
    if (a[i] == '+') {
      if (sta.empty()) {
        flag = false;
        break;
      } else {
        ans[cnt++] = sta.top();
        sta.pop();
      }
    } else if (a[i] == '-') {
      if (!sta.empty() && b[i] > sta.top()) {
        flag = false;
        break;
      } else {
        sta.push(b[i]);
      }
    }
  }
  if (!sta.empty()) {
    flag = false;
  }
  if (!flag) {
    printf("NO\n");
  } else {
    printf("YES\n");
    for (int i = n - 1; i >= 0; --i) {
      printf("%d", ans[i]);
      if (!i) {
        printf("\n");
      } else {
        printf(" ");
      }
    }
  }
  return 0;
}
