마술 도구
시간 제한2초메모리 제한1024 MB
0 이상 N 미만의 수를 맞히려면 각 카드에 T개의 서로 다른 수를 적을 때 필요한 카드의 최소 개수 K와 카드 구성을 구한다.
문제
샤레롱은 실버가 생각한 이상 미만의 정수를 맞추는 마술을 하려고 합니다. 이를 위해 샤레롱은 카드 장을 준비해, 각 카드에 이상 미만의 서로 다른 정수를 개 쓸 것입니다.
실버는 이상 미만의 어떤 정수를 생각한 후, 샤레롱이 준비한 개의 카드를 보고 자신이 생각한 정수가 각 카드에 적혀 있는지를 샤레롱에게 말해 줍니다.
실버가 어떤 정수를 생각했더라도 샤레롱이 실버의 대답을 듣고 항상 그 정수를 맞출 수 있는 가장 작은 와 이 때의 , 그리고 샤레롱이 각 카드에 적어야 하는 수를 구하는 프로그램을 작성해봅시다. 샤레롱이 실버의 대답을 듣고 항상 그 정수를 맞출 수 있다는 것은, 실버의 대답에 의해 실버가 생각한 정수가 유일하게 결정된다는 뜻입니다. 또, 샤레롱은 적어도 하나의 방법으로 문제의 조건을 만족하게 카드를 준비할 수 있습니다.
입력
첫 번째 줄에 실버가 생각할 수 있는 정수의 범위를 나타내는 정수 이 주어집니다. ()
출력
첫 번째 줄에 샤레롱이 준비해야 하는 카드의 최소 개수 를 출력합니다.
두 번째 줄에 샤레롱이 각 카드에 쓸 수의 개수 를 출력합니다.
세 번째 줄부터 개의 줄에 샤레롱이 각 카드에 적어야 하는 수를 다음과 같은 형식으로 출력합니다.
- 번째 줄에는 샤레롱이 번째 카드에 쓸 개의 수를 공백으로 구분해 출력합니다.
만약 가능한 정답이 여러 가지라면, 아무거나 출력해도 정답으로 인정되며 는 최소화하지 않아도 됩니다.