카드 마술

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

문제

나는 여자친구 앨리스에게 보여 줄 카드 마술을 연습하고 있다. 확률에 기대는 마술이라 대부분 성공하지만 언제나 성공하지는 않는다.

먼저 카드 여러 장을 섞어 앞면이 보이도록 한 줄로 늘어놓는다. 테이블에는 카드가 적어도 열 장 있다. 앨리스는 앞에서 열 장 안에 있는 카드 한 장을 몰래 고른다. 즉 1 이상 10 이하의 비밀 숫자 x0x_0을 정한다. 그다음부터는 카드를 건너뛰며 고르기를 반복한다. 위치 xix_i의 카드를 골랐고 그 앞면의 값이 c(xi)c(x_i)이면, 다음으로 고르는 카드는 위치 xi+1=xi+c(xi)x_{i+1} = x_i + c(x_i)에 있다. J, Q, K는 10으로 세고, A는 11로 센다.

위치 xi+c(xi)x_i + c(x_i)에 카드가 없으면 앨리스는 그 자리에서 멈춘다.

이어서 나도 같은 방법으로 카드를 고른다. 시작 위치는 무작위로 정하기 때문에 앨리스가 고른 위치와 다를 수 있다. 그런데도 내가 마지막에 멈추는 카드가 앨리스와 같은 경우가 많다. 앨리스는 이 마술에 크게 감탄한다.

정작 내 관심은 그 뒤에 숨은 계산이다. 내가 무작위로 정한 시작 위치와 내가 고른 카드의 앞면을 마지막 카드까지 모두 알고 있을 때, 앨리스가 나와 같은 카드에서 멈추는 시작 위치를 골랐을 확률을 구하라. 앨리스의 시작 위치는 1 이상 10 이하에서 균등한 확률로 정한다고 가정한다.

내가 건너뛴 카드는 적어 두지 않아서 무엇인지 알 수 없다. 알 수 없는 카드의 앞면은 서로 독립이고, 가능한 앞면(2부터 10까지, J, Q, K, A) 중에서 균등한 확률로 정해진다고 가정한다.

내가 마지막으로 고른 카드 뒤에 남은 알 수 없는 카드의 수는 그 카드의 값보다 작다. 마지막 카드가 Q라면 그 뒤에 남은 알 수 없는 카드는 0장에서 9장 사이다.

입력

입력은 여러 테스트 케이스로 이루어지며 파일이 끝날 때까지 이어진다. 각 테스트 케이스는 다음과 같다.

  • 첫 줄에 정수 nnmm이 주어진다(1n1001 \le n \le 100, 1m101 \le m \le 10). nn은 내가 고른 카드의 수이고, mm은 내가 처음 고른 카드의 위치다. 위치는 1부터 센다.
  • 다음 줄에 내가 고른 카드 nn장의 앞면이 고른 순서대로 주어진다. 마지막 카드까지 모두 포함한다. 각 앞면은 정수 vv(2v102 \le v \le 10)이거나 문자 J, Q, K, A 중 하나다.

출력

각 테스트 케이스마다 앨리스가 나와 같은 카드에서 멈추는 시작 위치를 골랐을 확률을 한 줄에 출력한다.

이 확률은 유리수 p/qp/q다. 위 제한에서 qq10000000071\,000\,000\,007의 배수가 되지 않으므로, r×qp(mod1000000007)r \times q \equiv p \pmod{1\,000\,000\,007}0r<10000000070 \le r < 1\,000\,000\,007을 만족하는 정수 rr이 정확히 하나 있다. 그 rr을 출력한다. 확률이 정확히 1/101/10이면 700000005700000005를 출력한다.