코드 잼이 많아지는 해 (스몰)

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

문제

새해가 되면 달력이 바뀌고 새로운 대회가 열린다. 그래도 변하지 않는 것이 있다. 좋은 프로그래밍 대회는 올해도 많이 열리고, 스피니가 대회를 좋아하는 마음도 그대로다.

스피니가 눈여겨보는 대회가 여럿 있다. 각 대회는 여러 라운드로 이루어진다. 주최 측은 대회 시작 날짜를 아직 정하지 않았지만, 라운드가 몇 개인지와 각 라운드가 시작일로부터 며칠째에 열리는지는 이미 정해 두었다.

서로 다른 대회의 라운드가 같은 날에 겹칠 수 있다. 스피니는 하루에 라운드가 많이 열릴수록 더 기뻐한다. 라운드가 SS개 열리는 날마다 행복도가 S2S^2만큼 늘어난다. 행복도는 0에서 시작한다.

아래 그림은 대회 세 개를 색으로 구분해 보여 준다. 이때 스피니의 행복도는 모두 합쳐 20이다. 한 대회는 그 해의 2일째에, 다른 하나는 5일째에, 나머지 하나는 6일째에 시작한다.

대회 세 개의 라운드가 달력 위에 놓인 그림

한 해는 NN일이다. 각 대회는 이 NN일 중 하루에 시작하고, 어느 날에 시작하든 확률은 모두 같다. 스피니의 행복도의 기댓값을 구하라.

스피니는 근삿값이 아니라 정확한 값을 원한다. 대회가 TT개이므로 시작 날짜를 고르는 방법은 NTN^T가지이고, 모두 확률이 같다. 기댓값을 K+A/BK + A/B 꼴로 나타내라. KKBB는 양의 정수, AABB보다 작은 음이 아닌 정수다. AA가 0이면 BB는 1이어야 하고, 그렇지 않으면 AABB의 최대공약수가 1이어야 한다.

대회가 충분히 늦게 시작하면 일부 라운드는 다음 해로 넘어간다. 넘어간 라운드는 올해의 행복도에 더해지지 않는다.

입력

첫째 줄에 테스트 케이스의 개수 CC가 주어진다. 각 테스트 케이스의 첫 줄은 다음과 같다.

N T

NN은 한 해의 날짜 수, TT는 대회의 개수다. 이어서 대회마다 한 줄씩 TT개의 줄이 다음 형식으로 주어진다.

m d2 d3 ... dm

이 대회는 라운드가 mm개이고, ii번째 라운드는 대회 시작일로부터 did_i일째에 열린다. 첫 라운드는 항상 1일째에 열리므로 d1=1d_1 = 1은 입력에 넣지 않는다. 따라서 mm 뒤에는 수가 m1m - 1개 온다.

제한

  • 1C501 \le C \le 50
  • 1N1091 \le N \le 10^9
  • 1T31 \le T \le 3
  • 2m502 \le m \le 50
  • 1<d2<d3<<dm100001 < d_2 < d_3 < \cdots < d_m \le 10000

출력

각 테스트 케이스마다 다음 형식으로 한 줄씩 출력한다.

Case #X: K+A/B

XX는 1부터 시작하는 테스트 케이스 번호이고, KKAABB는 문제에서 설명한 값이다.