입자 실험
면접 대비시간 제한1.5초메모리 제한512 MB
R×C 격자에 1×2 스위치를 놓아 모든 입자가 양전하로 센서에 도달하게 하는 방법의 수를 10^9+7로 나눈 나머지로 구합니다.
문제
Albert는 작은 입자를 이용해 연구하고 있다. 각 입자는 양성(+) 전하 또는 음성(-) 전하를 가지며, 실험 기구를 이용해 전하를 바꿀 수 있다. 구체적으로, 크기가 인 격자 모양의 실험 기구를 수직으로 세워 둔다. 각 열의 1행 위에서 입자를 하나씩 발사하고, 행 아래에 있는 감지 센서가 입자를 감지한다.
예를 들어 아래 그림에서 , 이고, 문자열 = +-++는 1열부터 4열까지 차례로 양성, 음성, 양성, 양성 입자를 발사함을 뜻한다. 각 입자는 1행부터 행까지 직선으로 지나가며 총 개의 칸을 통과해 가장 아래에 있는 감지 센서에 도달한다.

실험 기구의 일부 칸에는 미리 설치된 스위치가 있다. 해당 칸을 지나는 입자는 양성에서 음성으로, 또는 음성에서 양성으로 바뀐다. 미리 설치된 스위치의 개수를 라 하고, 번째 스위치가 설치된 행과 열의 인덱스를 , 라 하자.
아래 그림에서는 , , 이다. 최종적으로 감지되는 입자는 모두 양성이다. 2열의 입자는 음성에서 양성으로 바뀌고, 4열의 입자는 음성으로 바뀌었다가 다시 양성으로 바뀌기 때문이다.

Albert는 크기의 스위치(가로로 두 칸을 차지하는 스위치)도 여러 개 가지고 있다. 이를 이용해 모든 입자가 감지 센서에 도달할 때 양성이 되도록 하려고 한다. 이 스위치는 항상 가로로 두 칸을 덮도록 설치해야 하며, 어떤 칸도 두 개 이상의 스위치로 덮이면 안 된다. 위 예제의 경우 다음 세 가지 방법으로 목표를 달성할 수 있다.
- 2행 1-2열과 3행 1-2열에 스위치를 각각 설치한다.
- 2행 2-3열과 3행 2-3열에 스위치를 각각 설치한다.
- 스위치를 추가로 설치하지 않는다.

이 예에서 편의상 두 스위치를 AA, BB로 적었지만, 스위치는 모두 같은 모양이라 서로 구별되지 않는다.
또 다른 예로, , , 인 경우 Albert는 총 다섯 가지 방법으로 목표를 달성할 수 있다.

입력으로 , , , , 가 주어질 때, 스위치를 실험 기구에 추가하여 모든 입자가 양성인 채로 감지 센서에 도달하게 하는 방법이 몇 가지인지 구하라. 답이 매우 커질 수 있으므로 로 나눈 나머지를 출력한다.
입력
입력 첫 줄에 테스트 케이스의 수 가 주어진다.
각 테스트 케이스의 첫 줄에는 , , 가 공백으로 구분되어 주어진다. 둘째 줄에는 처음 실험 기구에서 발사되는 입자의 전하를 나타내는 길이 인 문자열 가 주어진다. 이어서 줄에 걸쳐 각 줄마다 , 가 공백으로 구분되어 주어진다.
출력
각 테스트 케이스의 정답을 한 줄에 하나씩 출력한다.
제한
- 모든 ()에 대하여 이고 이다.
- 각 테스트 케이스 내에서 정수쌍은 고유하다. 즉, 같은 칸이 두 번 이상 입력으로 주어지지 않는다.
- Albert는 충분히 많은 스위치를 갖고 있으므로 얼마든지 사용할 수 있다고 가정한다.