버거, 감자튀김, 음료수

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

안나(Anna)는 인도네시아의 인기 패스트푸드점 Om Burger에서 일하는 종업원입니다. Om Burger에는 자동 조리 기계가 있어서 다른 가게보다 일이 훨씬 수월합니다.

Om Burger는 Paket Uenak이라는 세트 메뉴 하나만 판매합니다. 이 세트는 버거(B) 1개, 감자튀김(F) 1개, 음료수(S) 1개로 구성됩니다. 손님은 주문할 Paket Uenak 세트의 개수를 카드에 적어 안나에게 건네고, 안나는 그 카드를 기계에 넣습니다.

기계는 카드 한 장에 적힌 개수만큼 항목을 하나씩 만들어 내는데, 순서는 정해져 있지 않습니다. 예를 들어 어떤 카드에 2가 적혀 있으면 기계는 BBFFSS의 어떤 순열(예: BFSBFS, BBFSFS 등)이든 만들어 낼 수 있습니다. 기계는 카드를 한 장씩 순서대로 처리하며, 현재 카드를 다 끝내기 전에는 다음 카드로 넘어가지 않습니다.

어느 바쁜 날, 안나는 카드를 한 장씩 넣는 대신 여러 장을 한꺼번에 넣었습니다. 기계는 정상적으로 작동했지만, 카드 사이에 아무런 구분 표시 없이 항목들을 하나의 연속된 열로 만들어 냈기 때문에 어떤 항목이 어떤 카드에서 나온 것인지 알 수 없게 되었습니다.

안나는 넣은 카드의 개수와 그 순서는 기억하지만, 각 카드에 적힌 세트 개수는 기억하지 못합니다.

예를 들어 카드 두 장을 넣어 기계가 다음과 같은 열을 만들어 냈다고 합시다.

B B F S S F S F B B F S

  • 배열 1: (B B F S S F)(S F B B F S) — 첫 번째 손님이 2세트, 두 번째 손님이 2세트를 주문한 경우.
  • 배열 2: (B B F S S F S F B)(B F S) — 첫 번째 손님이 3세트, 두 번째 손님이 1세트를 주문한 경우.

따라서 이 열을 두 카드로 나누는 방법은 2가지입니다.

카드의 개수와 기계가 만들어 낸 항목 열이 주어질 때, 가능한 배열의 수를 세어 안나를 도와주세요. 올바른 배열이란 이 열을 카드 순서대로 연속된 구간으로 나눈 것으로, 각 구간에 B, F, S가 같은 개수만큼(1개 이상) 들어 있어야 합니다.

입력

입력의 각 줄에는 넣은 카드의 개수를 나타내는 정수 N (1<N<301 < N < 30)과, 기계가 항목을 만들어 낸 순서를 나타내는 문자열이 공백으로 구분되어 주어집니다. 이 문자열은 B, F, S 문자로만 이루어져 있으며 공백을 포함하지 않습니다. 각 문자열의 길이는 100 미만입니다. 입력은 파일의 끝까지 계속되며, 모든 줄을 처리해야 합니다.

출력

각 줄마다 가능한 배열의 수를 출력합니다. 올바른 배열이 하나도 없으면 Impossible을 출력합니다.