# Metal Harvest SOLUTION KICKSTART ROUND F

Page Contents

### Metal Harvest SOLUTION KICKSTART ROUND F

You are in charge of deploying robots to harvest Kickium from a nearby asteroid. Robots are not designed to work as a team, so only one robot can harvest at any point of time. A single robot can be deployed for up to K units of time in a row before it returns for calibration, regardless of how much time it spends on harvesting during that period. Harvesting can only be done during specific time intervals. These time intervals do not overlap. Given K and the time intervals in which harvesting is allowed, what is the minimum number of robot deployments required to harvest at all possible times?

Input

The first line of the input gives the number of test cases, T. T test cases follow.

The first line of each test case gives two space separated integers N and K: the number of time intervals in which harvesting is allowed, and the maximum duration a robot can be deployed for before returning for calibration.

The next N lines contain a pair of space separated integers Si and Ei: the start time and the end time of the i-th interval respectively. Please note that intervals don’t include the time unit starting at the moment Ei, so for example an interval with (Si = 2; Ei = 5) has duration of 3 time units.

Output

For each test case, output one line containing Case #x: y, where x is the test case number (starting from 1) and y is the number of times robot deployment is needed so that for each interval there is one robot harvesting at that time.

Limits

1 ≤ T ≤ 100.

Time limit: 20 seconds per test set.

Memory limit: 1GB.

All Si are distinct.

For any two intervals (Si,Ei) and (Sj,Ej) with Si < Sj, Ei < Sj.

Test Set 1

1 ≤ N ≤ 100.

1 ≤ K ≤ 100.

1 ≤ Si < Ei ≤ 200.

Test Set 2

100 < N ≤ 105, in at most 10 test cases.

1 ≤ N ≤ 100, in the remaining test cases.

1 ≤ K ≤ 109.

1 ≤ Si < Ei ≤ 109.

Sample

Input

Output

2

3 5

1 5

10 11

8 9

3 2

1 2

3 5

13 14

Case #1: 2

Case #2: 3