#include<bits/stdc++.h>
#include<unordered_map>
using namespace std;
typedef long long LL;
const int N=5e5+10,M=2e10+10;
char s[N];
int n;
int num[N][2];
unordered_map<LL,int> ma;
int gcd(int a,int b){
    return b?gcd(b,a%b):a;
}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--){
        scanf("%d%s",&n,s+1);
        ma.clear();
        for(int i=1;i<=n;i++){
            num[i][0]=num[i-1][0];
            num[i][1]=num[i-1][1];
            if(s[i]=='D') num[i][0]++;
            else num[i][1]++;
            int a=num[i][0],b=num[i][1];
            int d=gcd(a,b);
            a/=d;b/=d;
            LL p=(LL)a*N+b;
            //printf("%d %d\n",a,b);

            printf("%d",++ma[p]);
            if(i==n) puts("");
            else printf(" ");
        }

    }
    return 0;
}
