#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

int main()
{
    int N;
    scanf("%d", &N); //100000
    char pole[N];

    scanf("%s", pole);

    int kolobezka;
    int vysledok = 0;

    int i,y;
    //int dlzka = strlen(pole);
    int pocetR = 0;
    int pocetB = 0;

    for (i=0;i<N;i++)
    {
        if (pole[i] == 'O')
        {
            pocetR++;
        }
        else if (pole[i] == 'X')
        {
            pocetB++;
        }
    }

    int achjaj = 0;

    if (pocetR > pocetB)
    {
        kolobezka = pocetR;
        pocetR = pocetB;
        pocetB = kolobezka;
        achjaj = 1;
        //printf("\nPREHODENE\n");

    }

    int actual = sqrt(pocetR);


    for (y=actual;y>0;y--)
    {
        int odmocnina = y;
        //printf("\n%d\n", actual);
        /*if ((pocetR - (odmocnina * odmocnina)) == 0)
        {
            //prirodzene
        }*/

        int noveR=0, noveB=0;
        //int vysledok = 0;

        int ramcek = (odmocnina * 4) + 4;


       /* if (ramcek < odmocnina*odmocnina*odmocnina*odmocnina)
        {
            odmocnina = 1;
            ramcek = 8;
        }*/


        /*if ((ramcek == pocetB) && pocetR == odmocnina)
        {
            printf("1");
        }
        else
        {*/
            for (i=0;i<N+1;i++)
            {
                if (noveR == odmocnina*odmocnina && noveB == ramcek)
                {
                    vysledok++;
                    break;
                }
                else
                {
                    if (noveR <= odmocnina*odmocnina && noveB <= ramcek)
                    {
                        if (pole[i] == 'O')
                        {
                            if (achjaj == 1)
                            {
                                 noveB++;
                            }
                            else{
                            noveR++;
                            //printf("\n noveR %d odmocnina %d", noveR, odmocnina*odmocnina);}
                            }
                        }

                        else if (pole[i] == 'X')
                        {
                            if (achjaj == 1)
                            {
                                noveR++;
                            }
                            else{
                            noveB++;
                            //printf("\n noveB %d ramcekB %d", noveB, ramcek);}
                        }
                        }
                    }
                    else
                    {
                        //printf("ACH");
                        break;
                    }
                }
            }
            noveR = 0;
            noveB = 0;

            for (i=N-1;i>=0;i--)
            {
                if (noveR == odmocnina*odmocnina && noveB == ramcek)
                {
                    vysledok++;
                    break;
                }
                else
                {
                    if (noveR <= odmocnina*odmocnina && noveB <= ramcek)
                    {
                        if (pole[i] == 'O')
                        {
                            if (achjaj == 1)
                            {
                                 noveB++;
                            }
                            else{
                            noveR++;
                            //printf("\n noveR %d odmocnina %d", noveR, odmocnina*odmocnina);}
                            }
                        }
                        else if (pole[i] == 'X')
                        {
                            if (achjaj == 1)
                            {
                                noveR++;
                            }
                            else{
                            noveB++;
                            //printf("\n noveB %d ramcekB %d", noveB, ramcek);}
                        }
                        }
                    }
                    else
                    {
                    //printf("fuj");
                    break;

                    }
                }
            }

    }

    printf("%d", vysledok);




    return 0;
}