점프하는 개구리

바위와 연못으로 이루어진 원형 문자열이 주어질 때, 어떤 바위에서 시작해 K칸씩 점프하는 동안 바위만 밟게 되는 K의 개수를 센다.

어려움8정수론수학문자열구현아직 제출이 없습니다시간 제한1초메모리 제한1024 MB

문제

개구리 폭은 닐로고니아에서 열리는 세계 개구리 점프 대회에 나가려고 한다. 대회에서 각 개구리는 따로 만든 경기장에서 곡예 점프를 연달아 해내야 한다. 경기장은 원둘레를 따라 같은 간격으로 놓인 NN개의 자리로 이루어지고, 이웃한 두 자리 사이의 호 길이는 모두 같다. 각 자리는 바위이거나 연못이다. 자리에는 시계 방향으로 00번부터 N1N-1번까지 번호가 붙어 있어서, 심판은 어느 자리에서 점프가 이루어졌는지 기록한다. 00번 자리는 11번 자리와 N1N-1번 자리에 이웃한다.

대회 규칙에 따르면 점프 순서는 바위에서 시작해 항상 바위에서 다른 바위로 이어지고, 출발한 자리에서 끝나야 한다. 경기장의 바위를 모두 쓸 필요는 없다.

폭은 대회를 앞두고 연습하는 중이다. 연습을 시작할 때마다 출발할 바위 하나와 11 이상 N1N-1 이하인 정수 점프 거리 KK를 고른다. ii번 바위에 서 있으면 다음 점프의 목표는 (i+K)(i+K)NN으로 나눈 나머지 번호의 자리다. 출발한 바위에 다시 착지하면 그 연습이 끝난다. 연못이나 표시된 자리 밖에 착지하면 실격이므로, 착지하는 자리는 모두 바위여야 한다. 예를 들어 경기장에 자리가 3개 있고 모두 바위일 때 폭이 00번에서 출발하며 K=2K = 2를 고르면 00번에서 22번으로, 다시 11번으로, 마지막에 00번으로 돌아오고 연습이 끝난다.

NN개 자리의 상태가 주어질 때, 어느 바위에서든 출발할 수 있다고 하고 폭이 연습에 고를 수 있는 서로 다른 KK 값이 몇 개인지 구하라.

입력

첫째 줄에 길이가 NN인 문자열 SS가 주어진다 (3N1053 \le N \le 10^5). SSii번째 문자 (i=0,1,,N1i = 0, 1, \dots, N-1)는 ii번 자리의 상태를 나타내고, R이면 바위, P이면 연못이다.

출력

폭이 연습에 고를 수 있는 서로 다른 점프 거리의 개수를 한 줄에 출력한다.