#include <bits/stdc++.h>
using namespace std;
char s[200005];
int n;
bool b[200005], e[200005];
int p[200005], cnt, ans[200005];
int main() {
  double begg = clock();
  scanf("%d", &n);
  scanf("%s", &s);
  for (int i = 0; i < 2 * n - 1; i++) cnt += s[i] - '0';
  for (int i = 0; i < 2 * n; i++) {
    if (i == 0)
      b[i] = 1;
    else if (s[i - 1] == '1')
      b[i] = 1;
  }
  for (int i = 0; i < 2 * n; i++) {
    if (i == 2 * n - 1)
      e[i] = 1;
    else if (s[i] == '1')
      e[i] = 1;
  }
  vector<int> same, beg, en;
  for (int i = 0; i < 2 * n; i++) {
    if (b[i] && e[i])
      same.push_back(i);
    else if (b[i])
      beg.push_back(i);
    else if (e[i])
      en.push_back(i);
  }
  if (same.size() % 2 == 1 || beg.size() != en.size()) {
    puts("No");
    return 0;
  }
  srand((unsigned)time(NULL));
  while (clock() - begg <= 1.9 * CLOCKS_PER_SEC) {
    random_shuffle(same.begin(), same.end());
    random_shuffle(en.begin(), en.end());
    memset(p, -1, sizeof(p));
    bool bad = 0;
    for (int i = 0; i < same.size(); i += 2) {
      p[same[i]] = same[i + 1];
      p[same[i + 1]] = same[i];
      if (abs(same[i] - same[i + 1]) == 1) {
        bad = 1;
        break;
      }
    }
    if (bad) continue;
    for (int i = 0; i < beg.size(); i++) {
      p[beg[i]] = en[i];
      p[en[i]] = beg[i];
      if (abs(beg[i] - en[i]) == 1) {
        bad = 1;
        break;
      }
    }
    if (bad) continue;
    vector<int> non;
    for (int i = 0; i < 2 * n; i++) {
      if (p[i] == -1) non.push_back(i);
    }
    assert(non.size() % 2 == 0);
    for (int i = 0; i < non.size(); i += 2) {
      p[non[i]] = non[i + 1];
      p[non[i + 1]] = non[i];
    }
    int cur = 0, C = 0;
    while (1) {
      cur = p[cur];
      if (cur == 2 * n - 1 || s[cur] == '0') {
        if (C == cnt) {
          puts("Yes");
          int d = 1;
          for (int i = 0; i < 2 * n; i++) {
            if (p[i] > i) {
              ans[p[i]] = d;
              ans[i] = d++;
            }
          }
          for (int i = 0; i < 2 * n; i++) {
            printf("%d ", ans[i]);
          }
          puts("");
          return 0;
        } else {
          break;
        }
      }
      C++;
      cur++;
    }
  }
  puts("No");
}
