#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<ctime>
#include<cstdlib>
#define cmax(a,b) (a<(b)?a=(b),1:0)
#define cmin(a,b) (a>(b)?a=(b),1:0)
#define dmin(a,b) ((a)<(b)?(a):(b))
#define dmax(a,b) ((a)>(b)?(a):(b))
#define CL fclose(stdin),fclose(stdout)
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;
	}
}
char s[222222];
int a[222222],pa;
int l[222222],pl;
int r[222222],pr;
int d[222222],pd;
int vis[222222];
int la[222222],to[222222];
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;
	if(pl==0){puts("No");return 0;}
	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;}
	if(pl%4==0){a[l[pl-3]]=a[r[pr-1]]=++pa,a[l[pl-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;
}