Сузір'я#635

Сузір'я

3 секунди
64 мегабайти
Середня

Вадим захоплюється астрономією і вступив до астрономічного гуртка. Нещодавно він дізнався про сузір'я, що його дуже зацікавило. Одного вечора, повернувшись додому, він сфотографував нічне небо з телескопом і почав шукати сузір'я на отриманому зображенні.

Щоб розпізнавати сузір'я, Вадим вигадав просте правило: зірка належить до одного сузір'я з усіма зірками, чиї зображення "не надто далеко" від її зображення. Нехай — це відстань від зображення зірки до найближчого зображення іншої зірки. Вадим включає у це ж сузір'я ті зірки, чиї зображення знаходяться на відстані не більшій за k \cdot d, де — це ціле число, яке Вадим обирає заздалегідь.

Він застосовує це правило так. Зірки та вважаються такими, що належать одному сузір'ю, якщо існує послідовність зірок A = u_1, u_2, \ldots, u_l = B така, що для будь-яких двох сусідніх зірок u_i та u_{i+1} у цій послідовності виконується принаймні одна з двох умов:

Якщо така послідовність існує, Вадим вважає дві зірки такими, що належать до одного сузір'я.

Ваше завдання — написати програму, яка, використовуючи інформацію про координати зображень зірок на фотографії, групує зірки у сузір'я за методом Вадима.

Вхідні дані

Перший рядок містить два цілі числа: — кількість зірок на фотографії (2 \leq n \leq 5000) та (1 \leq k \leq 10). Кожен з наступних рядків містить два числа — x_i і y_i — координати -тої зірки (|x_i|, |y_i| \leq 10^5). Зображення всіх зірок розташовані у різних точках.

Вихідні дані

Виведіть число — кількість сузір'їв. У наступних рядках виведіть описи сузір'їв. Кожен опис повинен містити число n_i — кількість зірок у цьому сузір'ї, а також n_i чисел — номери цих зірок. Зірки пронумеровані від до у порядку подання у вхідних даних.

Приклади

Приклад 1

Loading
Loading