#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

const int MAXN = 6e5;

int TC, N;
char S[MAXN+10];

struct UF
{
	int par[MAXN+10], sz[MAXN+10];
	void init()
	{
		for(int i=0; i<=N+N+1; i++)
		{
			par[i]=i;
			sz[i]=1;
		}
	}
	int Find(int x)
	{
		if(x==par[x]) return x;
		return par[x]=Find(par[x]);
	}
	void Union(int x, int y)
	{
		x=Find(x); y=Find(y);
		if(x==y) return;
		par[x]=y;
		sz[y]+=sz[x];
	}
}uf;

int main()
{
	scanf("%d", &TC);
	while(TC--)
	{
		scanf("%d", &N);
		scanf(" %s", S+1);

		uf.init();
		for(int i=1; i<=N; i++)
		{
			int u=i-1, v=i;
			if(S[i]=='L')
			{
				u+=N+1;
			}
			else
			{
				v+=N+1;
			}
			uf.Union(u, v);
		}
		for(int i=0; i<=N; i++) printf("%d ", uf.sz[uf.Find(i)]); printf("\n");
	}
}