Клуби#8560

Клуби

1 секунда
128 мегабайтів
Легка

Жителі міста X люблять вступати до різних клубів. З роками кількість клубів у місті значно зросла, і тепер тут існує багато клубів із однаковими учасниками. Міська влада вирішила, що настав час навести лад у системі клубів. Було прийнято рішення, що клубна система міста повинна відповідати наступним вимогам:

Оскільки утримання клубу вимагає коштів, загальна кількість клубів має бути мінімальною. Крім того, учасники кожного клубу збираються на зустрічі, а у місті немає великих залів. Тому після мінімізації кількості клубів потрібно також зробити так, щоб кількість учасників у найбільшому клубі була мінімальною (у місті, звісно, може бути кілька найбільших клубів з однаковою кількістю учасників).

У місті проживає мешканців, пронумерованих від до .

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

Вхідні дані

Одне число (2 \le n \le 10^5) - кількість жителів у місті X.

Вихідні дані

На першому рядку виведіть два цілих числа, розділених пробілом: мінімальна кількість клубів і мінімальна можлива кількість членів у найбільшому клубі.

Далі, для кожного клубу, виведіть рядок чисел, розділених пробілами. Перше число має дорівнювати кількості членів клубу, а далі повинні бути перераховані номери жителів, які є членами цього клубу. Номери жителів можуть бути вказані в будь-якому порядку.

Приклади

Приклад 1

Loading
Loading

Примітка

Першу умову можна виконати, використавши щонайменше три клуби, при цьому у найбільшому клубі буде два учасника. Також першу умову можна задовольнити, наприклад, таким розподілом жителів по трьох клубах: {, , }, {, } та {}, але це не оптимальна відповідь, оскільки у цьому випадку у найбільшому клубі три учасника.