Сітка#1908

Сітка

2 секунди
64 мегабайти
Легка

На площині задана нескінченна сітка, що складається з вертикальних та горизонтальних прямих. Прямі задаються рівняннями X = i \cdot K та Y = j \cdot K для будь-яких цілих чисел та . Також задано множину з точок. Вважається, що точка лежить на сітці, якщо вона лежить хоча б на одній з прямих, що утворюють сітку.

Сітку можна переміщати паралельно осям координат. Переміщення сітки на вектор (dx, dy) означає, що кожна пряма X = i \cdot K перетворюється на X = i \cdot K + dx, а кожна пряма Y = j \cdot K — на Y = j \cdot K + dy. Знайдіть максимальну можливу кількість точок із заданої множини, які можуть одночасно лежати на сітці після її зміщення деяким вектором.

Вхідні дані

Перший рядок містить два цілих числа і . Кожен з наступних рядків містить два цілих числа X_i, Y_i — координати -ої точки (1 \leq N \leq 10^5, 2 \leq K \leq 10^9). Всі координати точок — цілі числа, за модулем не перевищують 10^9. Жодні дві точки не співпадають.

Вихідні дані

Виведіть максимальну можливу кількість точок з заданої множини, які можуть одночасно лежати на сітці.

Приклади

Приклад 1

Loading
Loading