/*
    好题
    有一个结论,最多只需两刀切
    用一个长度为n/2的区间去扫就行
    如果这个区间里H的个数为h/2,则T的个数也为t/2,就满足了
    所以只考虑H的变化,当它满足了就满足了
    而扫的过程,H ++或--或不变,但由于不平衡,所以总会变到h/2
*/

#include
<cstdio>
#include
<cstring>

const int MAXN=100010;

int sum[MAXN];

int main(){
    
int n;
    
char ch;
    
while(scanf("%d\n",&n),n){
        
for(int i=1;i<=n;i++){
            ch
=getchar();
            sum[i]
=sum[i-1];
            
if(ch=='H')sum[i]++;
        }

        
if(sum[n]&1||n&1){printf("-1\n");continue;}
        
int beg=0,end=n/2;
        
while(end<n){
            
if((sum[end]-sum[beg])*2==sum[n]&&
            ((end
-sum[end])-(beg-sum[beg]))*2==n-sum[n])break;
            beg
++,end++;
        }

        
if(end==n/2)printf("1\n%d\n",end);
        
else printf("2\n%d %d\n",beg,end);
    }

    
return 0;
}