피보나치 단어는 피보나치 수와 비슷한 방식으로 정의된다.
FIB1=b,FIB2=a,FIBk+2=FIBk+1⊕FIBk(k≥1)
여기서 ⊕는 두 단어를 이어 붙이는 연산(연결, concatenation)을 뜻한다.
따라서 처음 몇 개의 피보나치 단어는 FIB3=ab, FIB4=aba, FIB5=abaab, FIB6=abaababa 이다.
문자 a와 b로만 이루어진 패턴 단어와 정수 n이 주어진다. 이 패턴이 n번째 피보나치 단어 FIBn 안에서 연속한 부분 문자열로 몇 번 나타나는지 세어라. 두 등장은 서로 겹칠 수 있으므로, 패턴과 일치하는 모든 시작 위치를 각각 하나로 센다.
첫째 줄에 패턴 단어가 주어진다. 이 단어는 a 또는 b로 이루어져 있으며 길이는 1 이상 30 이하이다.
둘째 줄에 양의 정수 n이 주어진다. (n≤200)
패턴 단어가 FIBn 안에 나타나는 횟수를 음이 아닌 정수 하나로 출력한다. 답은 매우 클 수 있으며 64비트 정수 범위를 넘을 수 있다.