#143 · year-of-more-code-jam-770985

更多 Code Jam 之年

Not startedHard
Time10.0 s
Memory1,024 MB
Submissions0
Acceptance0.0%
0%100%

Statement

新的一年带来了新的日历、新的挑战以及生活中许多新的乐趣。然而,有些事情永远不会改变。仍然有许多伟大的编程竞赛即将举行,而我们的女主角 Sphinny 对它们的热情始终未变。

Sphinny 对几个锦标赛感兴趣。每个锦标赛将由若干轮组成。每个锦标赛的组织者尚未决定锦标赛的起始日期,但已经决定了锦标赛中将有多少轮,以及每轮在起始日期后的第几天举行。

在某些情况下,来自不同锦标赛的两轮或更多轮可以安排在同一天。由于 Sphinny 非常热衷于解决问题,如果同一天安排了更多轮,她会更开心。她的幸福值计算如下:对于有 *S* 轮比赛的每一天,她的幸福值将增加 *S*。她的幸福值从 0 开始(别担心——0 是一个快乐的起点)。

下图中有三个锦标赛,分别用不同的颜色表示,Sphinny 的总幸福值为 20。一个锦标赛从一年的第二天开始,一个从第五天开始,一个从第六天开始。

一年中有 N 天。每个锦标赛将以相等的概率在 N 天中的任意一天开始。今年的重大问题是 Sphinny 的幸福值的期望值是多少。

作为一个完美主义者,她不打算近似求解这个问题。相反,她想要精确地知道结果。锦标赛的数量是 T,有 N 种等可能的方式选择锦标赛的开始日期。她将把期望幸福值表示为 *K*+*A*/*B*,其中 *K* 和 *B* 是正整数,*A* 是小于 *B* 的非负整数。如果 *A* 为零,则 *B* 必须为一,否则 *A* 和 *B* 不能有大于 1 的公因子。

如果一个锦标赛在一年中开始得足够晚,它的一些轮次可能会安排到下一年。这些轮次不会增加 Sphinny 今年的幸福值。

Input

输入的第一行是一个整数 C,表示测试用例的数量。接下来是 C 个测试用例。每个测试用例的第一行格式为

```
N T
```
其中 N 是一年中的天数,T 是锦标赛的数量。接下来是 T 行,每行对应一个锦标赛,格式为
```
m d2 d3 ... dm
```
表示有 m 轮,第 i 轮将在锦标赛的第 d 天举行。锦标赛的第一轮在第 1 天举行(d= 1)。

### 数据范围

- 1 ≤ C ≤ 50
- 1 ≤ N ≤ 10
- 2 ≤ m ≤ 50
- 1 < d < d < ... < d ≤ 10000
- 1 ≤ T ≤ 2
- 1 ≤ T ≤ 50

Output

按测试用例顺序逐个输出答案。对于每个测试用例,输出一行,格式为 K+A/B,其中 *K*、*A* 和 *B* 如上所述。

Examples

Example 1

Input

2
1 1
2 2
4 2
3 2 4
2 3

Output

1+0/1
5+1/8

Constraints

  • Time limit: 10000 ms
  • Memory limit: 1048576 KB
  • Tag: math

Loading language catalog...