청소

NYPC 2025 · Round 2-A

깨끗한 바닥 위에 NN개의 먼지가 있다. 바닥은 좌표평면으로 생각할 수 있고, ii번째 (1iN)(1 \le i \le N) 먼지는 좌표 (xi,yi)(x_i , y_i) 위치에 있는 점으로 생각할 수 있다.

먼지를 좋아하는 사람은 없기 때문에, 폭이 LL인 걸레로 이 먼지들을 쓸어내고 싶다.

먼지는 싫지만 청소도 귀찮기 때문에, 이 걸레를 딱 한 번 직선으로 끌면서 청소를 하려고 한다. 당연하게도 한 번의 청소로 최대한 많은 먼지를 없애고 싶다. 먼지는 걸레의 경계에 닿아도 없어진다.

먼지의 개수, 걸레의 폭, 먼지의 좌표가 주어졌을 때 위와 같은 방법으로 최대한 많이 없앨 수 있는 먼지의 수를 구하는 프로그램을 작성하라.

입력 형식

첫 줄에 테스트 케이스의 수를 나타내는 정수 TT가 주어진다. (1T15001 \le T \le 1\,500)

그다음 줄부터 각 테스트 케이스에 대한 정보가 주어진다.

모든 테스트 케이스에서의 NN 값의 총합은 15001\,500을 넘지 않는다.

출력 형식

첫 줄에 문제에서 요구하는 먼지의 최대 개수를 출력한다.

예제

입력

2 3 1 1 2 2 4 4 1 4 2 1 2 2 3 3 5 4 0

출력

2 3

예제 설명

아래 그림은 각각 첫 번째 테스트 케이스, 두 번째 테스트 케이스의 예이다.

채점 방식

입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞혀야 그 종류에 배정된 점수를 받을 수 있다.

종류 1: 17

N3N \le 3

종류 2: 28

N300N \le 300

종류 3: 25

50xi,yi50-50 \le x_i, y_i \le 50

종류 4: 30

모든 입력 케이스가 주어진다.

해설