import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // // 注意 hasNext 和 hasNextLine 的区别
        // while (in.hasNextInt()) { // 注意 while 处理多个 case
        //     int a = in.nextInt();
        //     int b = in.nextInt();
        //     System.out.println(a + b);
        // }


        
        //先把数据读取进来
        int n = in.nextInt();
        in.nextLine();
        String s = in.nextLine();

        //使用动态规划来解决,关键是定义好dp数组
        //思路,定义dp[i]为以s[i]为结尾的子串的权值
        //递推公式为:dp[i] = 1(单独一个字符作为子串)+dp[i-1](和前面的字符串连成一个字符串)(注意这种子串的数量为i) +i(如果s[i]和s[i-1]不同,则每个非单一字符子串的权值需要加一)/0(如果s[i]和s[i-1]相同)
        //
        long[] dp = new long[n];

        dp[0] = 1;
        long ans = 1;
        for(int i=1;i<n;i++){
            if(s.charAt(i)==s.charAt(i-1)){
                dp[i] = 1+dp[i-1];
            }else{
                dp[i] = 1+dp[i-1]+i;
            }
            ans = ans+dp[i];
        }

        System.out.println(ans);

    }
}