제출: 53 통과: 4

[제출] [채점기록] [묻고답하기]

Unlike a straight line, a *straight segment* between two points *P*_{1}, *P*_{2} (normally written as *P*_{1}*P*_{2}) is a line that links the two points *but doesn’t extend beyond them*. A third point *P*_{3} is said to be *incident* to *P*_{1}*P*_{2} iff *P*_{3} lies on the straight line and between the points *P*_{1} and *P*_{2}. *P*_{1}*P*_{2} is said to *include* *P*_{3}. By definition, *P*_{1} and *P*_{2} are included in *P*_{1}*P*_{2}. Write a program to find the segment that includes the most number of given points.

Your program will be tested on one or more test cases. Each test case includes a set of two or more unique points, where the Cartesian coordinates of each point is specified on a separate line using two integers *X* and *Y* where 0 ≤ |*X*|, |*Y*| < 1,000,000. No test case has more than 1000 points. An input line made of two or more `'-'` (minus signs) signals the end of a test case. An extra input line of two or more `'-'` (minus signs) follow the last test case.

For each test case, output the result on a single line using the following format:

`k. n`

Where `k` is the test case number (starting at 1), and `n` is the number of points on the segment.

```
1 1
1 5
5 9
9 5
5 5
3 2
5 3
----
1 5
5 1
1 1
5 5
--
--------
```

```
1. 4
2. 2
```