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