Задачи
Сетка
Сетка
На плоскости задана бесконечная сетка из вертикальных и горизонтальных прямых. Эти прямые заданы уравнениями \{\textbf{X} = \textbf{i}·\textbf{K}\} и \{\textbf{Y} = \textbf{j}·\textbf{K}\} для любых целых чисел \textbf{i} и \textbf{j}. Также задано \textbf{N} точек. Для конкретной точки мы говорим, что она принадлежит сетке, если эта точка принадлежит хотя бы одной из прямых, образующих сетку.
Есть возможность двигать сетку параллельно осям координат. Перенос сетки на вектор (\textbf{dx}, \textbf{dy}) означает, что вместо каждой из прямых \{\textbf{X} = \textbf{i}·\textbf{K}\} возникает прямая \{\textbf{X} = \textbf{i}·\textbf{K} + \textbf{dy}\}, а вместо каждой из прямых \{\textbf{Y} = \textbf{j}·\textbf{K}\} возникает прямая \{\textbf{Y} = \textbf{j·K + dx}\}. Найдите вектор переноса сетки, в результате применения которого ей будет принадлежать наибольшее количество заданных точек.
\InputFile
Первая строка содержит два целых числа \textbf{N} и \textbf{K}. \textbf{i}-ая из следующих \textbf{N} строк содержит пару чисел \textbf{X_i}, \textbf{Y_i} --- координаты \textbf{i}-ой точки (\textbf{1} ≤ \textbf{N} ≤ \textbf{10^5}, \textbf{2} ≤ \textbf{K} ≤ \textbf{10^9}). Координаты всех точек целые и по абсолютной величине не превосходят \textbf{10^9}. Никакие две точки не совпадают.
\OutputFile
Выведите максимальное возможное количество одновременно принадлежащих сетке точек из заданного множества.
Входные данные #1
6 2 2 0 0 1 2 2 3 3 3 2 4 1
Выходные данные #1
5
Объяснение: Один из возможных векторов переноса сетки в данном примере — (1,0).