/* prob1.java * */ import java.io.*; import java.util.*; class prob1 { public static void main (String [] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); PrintWriter out = new PrintWriter(System.out); StringTokenizer st; st = new StringTokenizer(in.readLine()); int N = Integer.parseInt(st.nextToken()); // out.println(N); // DEBUG int[] arrH = new int[N]; // Holstein zero-one array int[] arrHsum = new int[N]; // Holstein subset sum array st = new StringTokenizer(in.readLine()); char[] arrinput = (st.nextToken()).toCharArray(); long answer = 0; int i,j; char c; int seqlen; int hcount; // initialize the subset sum if (arrinput[0] == 'H') { arrH[0]=1; arrHsum[0]=1; } // loop to fill in the subset sum for (i = 1; i < N; i++) { if(arrinput[i] == 'H') { arrH[i] = 1; } arrHsum[i] = arrHsum[i-1] + arrH[i]; } // loop to check sequences that start at index 0 for (j=2;j<N;j++) { seqlen = j+1; if ((arrHsum[j]==1)||(arrHsum[j]==seqlen-1)) { answer++; } } // nested loop to check all other sequences for (i=1;i<N-2;i++) { for (j=i+2;j<N;j++) { seqlen = j-i+1; // sequence starts at index i (for i>0) // sequence ends at index j hcount = arrHsum[j]-arrHsum[i-1]; if ((hcount==1)||(hcount==seqlen-1)) { answer++; } } } // out.println(Arrays.toString(arrinput)); // DEBUG // out.println(Arrays.toString(arrH)); // DEBUG // out.println(Arrays.toString(arrHsum)); // DEBUG out.println(answer); out.close(); } }