#include <bits/stdc++.h>
namespace io {
int F() {
  int n = 0, F = 1;
  char ch;
  while ((ch = getchar()) != '-' && (ch < '0' || ch > '9'))
    ;
  ch == '-' ? F = 0 : n = ch - '0';
  while ((ch = getchar()) >= '0' && ch <= '9')
    n = (n << 1) + (n << 3) + ch - '0';
  return F ? n : -n;
}
long long G() {
  long long n = 0, F = 1;
  char ch;
  while ((ch = getchar()) != '-' && (ch < '0' || ch > '9'))
    ;
  ch == '-' ? F = 0 : n = ch - '0';
  while ((ch = getchar()) >= '0' && ch <= '9')
    n = (n << 1) + (n << 3) + ch - '0';
  return F ? n : -n;
}
}  // namespace io
char s[222222];
int a[222222], pa;
int l[222222], pl;
int r[222222], pr;
int d[222222], pd;
int main() {
  int n = io::F() << 1;
  scanf("%s", s + 1);
  s[0] = s[n] = '1';
  for (register int i = 1; i <= n; ++i)
    if (s[i] == '1' && s[i - 1] == '1')
      l[++pl] = i;
    else if (s[i - 1] == '1')
      d[++pd] = i;
    else if (s[i] == '1')
      d[++pd] = i;
  if (pl & 1) {
    puts("No");
    return 0;
  }
  if (pl % 4 == 0) {
    for (register int i = 1; i + i <= pl; ++i)
      a[l[i]] = a[l[i + pl / 2]] = ++pa;
    for (register int i = 1; i <= pd; i += 2) a[d[i]] = a[d[i + 1]] = ++pa;
    int cnt = 0;
    ++pa;
    for (register int i = 1; i <= n; ++i)
      if (a[i] == 0) {
        a[i] = pa;
        ++cnt;
        if (cnt == 2) cnt = 0, ++pa;
      }
    puts("Yes");
    for (register int i = 1; i <= n; ++i) printf("%d ", a[i]);
    return 0;
  }
  for (register int i = 2; i < pd; i += 2)
    if (d[i + 1] - d[i] == 1) a[d[i]] = a[d[i - 1]] = ++pa, d[i - 1] = d[i] = 0;
  std::sort(d, d + pd + 1);
  pd = std::unique(d, d + pd + 1) - d - 1;
  if (pd <= 2) {
    puts("No");
    return 0;
  }
  for (register int i = 5; i <= pd; i += 2) a[d[i]] = a[d[i + 1]] = ++pa;
  a[d[1]] = a[d[4]] = ++pa;
  a[d[2]] = a[d[3]] = ++pa;
  for (register int i = 1; i <= pl; ++i)
    if (l[i] >= d[2] && l[i] <= d[3]) r[++pr] = l[i], l[i] = 0;
  std::sort(l, l + pl + 1);
  pl = std::unique(l, l + pl + 1) - l - 1;
  for (register int i = 1; i + 4 <= pl; i += 4)
    a[l[i]] = a[l[i + 2]] = ++pa, a[l[i + 1]] = a[l[i + 3]] = ++pa;
  for (register int i = 1; i + 4 <= pr; i += 4)
    a[r[i]] = a[r[i + 2]] = ++pa, a[r[i + 1]] = a[r[i + 3]] = ++pa;
  if (pl % 4 == 1) {
    a[l[pl]] = a[r[pr]] = ++pa;
  }
  if (pl % 4 == 3) {
    a[l[pl]] = a[r[pr]] = ++pa, a[l[pl - 1]] = a[r[pr - 1]] = ++pa,
    a[l[pl - 2]] = a[r[pr - 2]] = ++pa;
  }
  if (pl % 4 == 2) {
    a[l[pl - 1]] = a[r[pr - 3]] = ++pa, a[l[pl]] = a[r[pr - 1]] = ++pa,
             a[r[pr - 2]] = a[r[pr]] = ++pa;
    return 1;
  }
  if (pl % 4 == 0) {
    a[l[pl - 3]] = a[r[pr - 1]] = ++pa, a[l[pr - 1]] = a[r[pr]] = ++pa,
             a[l[pl - 2]] = a[l[pl]] = ++pa;
  }
  int cnt = 0;
  ++pa;
  for (register int i = 1; i <= n; ++i)
    if (a[i] == 0) {
      a[i] = pa;
      ++cnt;
      if (cnt == 2) cnt = 0, ++pa;
    }
  puts("Yes");
  for (register int i = 1; i <= n; ++i) printf("%d ", a[i]);
  return 0;
}
