#include <bits/stdc++.h>
using namespace std;
int n, cnt = 1, ans[200007];
string st;
vector<int> pos[2][2], s11;
void print() {
  puts("Yes");
  for (int i = 0; i < (n + n); i++) printf("%d ", ans[i]);
  exit(0);
}
void erase(vector<int> &v, int x) { v.erase(find(v.begin(), v.end(), x)); }
int main() {
  cin >> n >> st;
  st = "1" + st + "1";
  for (int i = 0; i < (n + n); i++)
    pos[st[i] - '0'][st[i + 1] - '0'].push_back(i);
  if (pos[1][1].size() == n + n) {
    if (n & 1) {
      puts("No");
      return 0;
    }
    for (int i = 1; i <= (pos[1][1].size()); i++) {
      ans[pos[1][1][i]] = cnt + (i & 1);
      if ((i & 3) == 3) cnt += 2;
    }
    print();
  }
  if (pos[1][1].size() & 1) {
    puts("No");
    return 0;
  }
  if (pos[1][1].size() % 4 == 0) {
    for (int i = 0; i < (pos[1][0].size()); i++)
      ans[pos[1][0][i]] = ans[pos[0][1][i]] = cnt++;
    for (int i = 0; i < (pos[0][0].size()); i++) {
      ans[pos[0][0][i]] = cnt;
      if (i & 1) cnt++;
    }
    for (int i = 0; i < (pos[1][1].size()); i++) {
      ans[pos[1][1][i]] = cnt + (i & 1);
      if ((i & 3) == 3) cnt += 2;
    }
    print();
  }
  int a = 0;
  while (a <= n + n && st[a] == '1') a++;
  if (a > n + n) {
    puts("No");
    return 0;
  }
  while (1) {
    while (a < n + n && st[a + 1] == '0') a++;
    if (a >= n + n) {
      puts("No");
      return 0;
    }
    if (a + 2 <= n + n && st[a + 2] == '1') break;
    a += 2;
  }
  int b = a + 1;
  while (b <= n + n && st[b] == '1') b++;
  if (b > n + n) {
    puts("No");
    return 0;
  }
  int p = 0;
  while (p < pos[1][1].size() && pos[1][1][p] > a && pos[1][1][p] < b - 1) p++;
  if (p >= pos[1][1].size()) {
    puts("No");
    return 0;
  }
  while (p + 1 < pos[1][1].size() && pos[1][1][p + 1] < a) p++;
  int x = a, y = b - 1, z = a + 1, w = pos[1][1][p];
  erase(pos[0][1], x);
  erase(pos[1][0], y);
  ans[x] = ans[y] = cnt++;
  erase(pos[1][1], z);
  erase(pos[1][1], w);
  ans[z] = ans[w] = cnt++;
  for (int i = 0; i < (pos[1][0].size()); i++)
    ans[pos[1][0][i]] = ans[pos[0][1][i]] = cnt++;
  for (int i = 0; i < (pos[0][0].size()); i++) {
    ans[pos[0][0][i]] = cnt;
    if (i & 1) cnt++;
  }
  for (int i = 0; i < (pos[1][1].size()); i++) {
    ans[pos[1][1][i]] = cnt + (i & 1);
    if ((i & 3) == 3) cnt += 2;
  }
  print();
  return 0;
}
