3 10 s 128 MB

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.

## Sample Input | ## Sample Output |
---|---|

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 |