아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

마술 도구

시간 제한2초메모리 제한1024 MB

요약
0 이상 N 미만의 수를 맞히려면 각 카드에 T개의 서로 다른 수를 적을 때 필요한 카드의 최소 개수 K와 카드 구성을 구한다.
난이도

보통10점 중 7점

유형
수학, 조합론, 비트 연산
정답자
아직 제출이 없습니다

문제

샤레롱은 실버가 생각한 00 이상 NN 미만의 정수를 맞추는 마술을 하려고 합니다. 이를 위해 샤레롱은 카드 KK장을 준비해, 각 카드에 00 이상 NN 미만의 서로 다른 정수를 TT개 쓸 것입니다.

실버는 00 이상 NN 미만의 어떤 정수를 생각한 후, 샤레롱이 준비한 KK개의 카드를 보고 자신이 생각한 정수가 각 카드에 적혀 있는지를 샤레롱에게 말해 줍니다.

실버가 어떤 정수를 생각했더라도 샤레롱이 실버의 대답을 듣고 항상 그 정수를 맞출 수 있는 가장 작은 KK와 이 때의 TT, 그리고 샤레롱이 각 카드에 적어야 하는 수를 구하는 프로그램을 작성해봅시다. 샤레롱이 실버의 대답을 듣고 항상 그 정수를 맞출 수 있다는 것은, 실버의 대답에 의해 실버가 생각한 정수가 유일하게 결정된다는 뜻입니다. 또, 샤레롱은 적어도 하나의 방법으로 문제의 조건을 만족하게 카드를 준비할 수 있습니다.

입력

첫 번째 줄에 실버가 생각할 수 있는 정수의 범위를 나타내는 정수 NN이 주어집니다. (2≤N≤100,0002\le N\le 100\\, 000)

출력

첫 번째 줄에 샤레롱이 준비해야 하는 카드의 최소 개수 KK를 출력합니다.

두 번째 줄에 샤레롱이 각 카드에 쓸 수의 개수 TT를 출력합니다.

세 번째 줄부터 KK개의 줄에 샤레롱이 각 카드에 적어야 하는 수를 다음과 같은 형식으로 출력합니다.

  • i+2(1≤i≤K)i+2(1\le i\le K)번째 줄에는 샤레롱이 ii번째 카드에 쓸 TT개의 수를 공백으로 구분해 출력합니다.

만약 가능한 정답이 여러 가지라면, 아무거나 출력해도 정답으로 인정되며 TT는 최소화하지 않아도 됩니다.

예제3

  1. 예제 1

    입력
    2
    
    예상 출력
    1
    1
    0
    
  2. 예제 2

    입력
    3
    
    예상 출력
    2
    1
    0
    1
    
  3. 예제 3

    입력
    4
    
    예상 출력
    2
    2
    0 3
    3 1