import numpy as np

def isSquare(a):
    if a == 0:
        return False
    for i in range(int(a**0.5)+2):
        if i**2 == a:
            return True

    return False


def dfa(x):
    return  4*int(round(x**0.5)) + 4



if __name__ == '__main__':
    tempo = input()
    s = input()
    cX, cO = 0,0
    nX = np.zeros(len(s)+1, dtype=np.uint32)
    nO = np.zeros(len(s)+1, dtype=np.uint32)

    for i in range(len(s)):
        if s[i] == 'X':
            cX += 1
        else:
            cO += 1
        nX[-i-2] = cX
        nO[-i-2] = cO

    #print(nX, nO)
    squares = [x**2 for x in range(1, int(round(len(s)**0.5))+2)]

    counter = 0
    for i in range(len(nX)):
        for j in squares[2:]:
            if i+j >= len(nX):
                break
            cX, cO = nX[i] - nX[i+j], nO[i] - nO[i+j]
            #print(cX, cO)
            if isSquare(cX) and cO == dfa(cX):
                counter += 1
            if isSquare(cO) and cX == dfa(cO):
                counter += 1

    print(counter)
