Please solve the programming task below using a self-contained code snippet in a markdown code block.

Given a two-dimensional graph with points on it, find a line which passes the most number of points.
Assume all the points that passed by the line are stored in list S sorted by their number. You need to return [S[0], S[1]], that is , two points that have smallest number. If there are more than one line that passes the most number of points, choose the one that has the smallest S[0]. If there are more that one line that has the same S[0], choose the one that has smallest S[1].
Please complete the following python code precisely:
```python
class Solution:
    def bestLine(self, points: List[List[int]]) -> List[int]:
```