/*
    好題
    有一個(gè)結(jié)論,最多只需兩刀切
    用一個(gè)長(zhǎng)度為n/2的區(qū)間去掃就行
    如果這個(gè)區(qū)間里H的個(gè)數(shù)為h/2,則T的個(gè)數(shù)也為t/2,就滿足了
    所以只考慮H的變化,當(dāng)它滿足了就滿足了
    而掃的過程,H ++或--或不變,但由于不平衡,所以總會(huì)變到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;
}