eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Клубы

Клубы

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

  • Для каждой пары жителей города должен быть хотя бы один клуб, такой что один из жителей в паре является членом этого клуба, а другой - нет.

  • Житель города может быть членом произвольного числа клубов, в частности может вообще не состоять в клубах.

Поскольку содержать клубы стоит денег, общее количество клубов должно быть минимально. Кроме того, члены каждого клуба собираются на общие встречи, а больших залов в городе нет. Поэтому после минимизации числа клубов, необходимо добиться того, чтобы количество членов в максимальном по количеству членов клубе должно быть минимально (в городе, разумеется, может быть несколько клубов с максимальным количеством членов).

В городе n жителей, пронумерованных от 1 до n.

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

Входные данные

Одно число n (2n105) - количество жителей в городе X.

Выходные данные

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

Далее для каждого клуба следует вывести строку чисел, разделенных пробелами – первое число должно быть равно количеству членов клуба, а затем должны быть перечислены номера жителей, которые будут членами клуба. Номера жителей могут быть перечислены в любом порядке.

Пояснение

Можно удовлетворить первое требование, используя не менее трех клубов, при этом в максимальном по размеру клубе два члена. Первое требование можно также выполнить, например, таким распределением жителей по трем клубам: {2, 4, 5}, {3, 4} и {5}, но это не оптимальный ответ, поскольку в этом случае в максимальном клубе три члена.

Ліміт часу 1 секунда
Ліміт використання пам'яті 128 MiB
Вхідні дані #1
5
Вихідні дані #1
3 2
2 2 4
2 3 4
1 5
Джерело 2017 IX International autumn tournament in informatics, Shumen, Senior, День 2, Задача D