피보나치 단어 수열을 다음과 같이 정의한다.
따라서 수열의 앞부분은 b, a, ab, aba, abaab, abaababa, abaababaabaab, ... 이다.
문자열 u가 문자열 v의 부분 단어(연속된 부분 문자열)라는 것은, 어떤 문자열 x, y에 대해 v=xuy로 쓸 수 있다는 뜻이다. (x, y는 빈 문자열이어도 된다.)
a와 b로만 이루어진 문자열 α와 정수 m이 주어진다. 피보나치 단어 Fm 안에 α가 부분 단어로 몇 번 나타나는지 세고(겹쳐서 나타나는 경우도 각각 센다), 또한 Fm의 비어 있지 않은 서로 다른 부분 단어 중에서 Fm 안에서의 등장 횟수가 α의 등장 횟수 이상인 것이 몇 개인지 구하여라.
첫째 줄에 정수 m (0≤m≤1,000,000,000)이 주어진다.
둘째 줄에 문자열 α가 주어진다. α는 a와 b로만 이루어져 있고 길이는 1,000,000 이하이며, 항상 Fm의 부분 단어이다.
두 정수를 공백으로 구분하여 한 줄에 출력한다.
두 수 모두 매우 커질 수 있으므로 20062006으로 나눈 나머지를 출력한다.
F5는 abaababa이고, 이 안에서 aba는 3번 나타난다. F5의 비어 있지 않은 서로 다른 부분 단어 중에서 3번 이상 나타나는 것은 a, b, ab, ba, aba의 5개이다.