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

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

흥미로운 순열

시간 제한5초메모리 제한512 MB

요약
1부터 n까지의 순열 가운데 앞의 i개 원소가 서로소인 것의 개수를 모든 i에 대해 m으로 나눈 나머지로 구하고, 불가능해지면 멈춘다.
난이도

보통10점 중 7점

유형
동적 계획법, 정수론, 조합론, 비트 연산
정답자
아직 제출이 없습니다

문제

Vasya는 길이 nn인 순열, 즉 11부터 nn까지의 정수가 각각 정확히 한 번씩 나타나는 수열을 연구한다. Vasya는 순열의 처음 kk개 원소가 서로소일 때 그 순열을 kk-흥미롭다고 말한다. 이 정의에 따르면 어떤 순열이 ii-흥미로우면 (i−1)(i - 1)-흥미롭기도 하다.

이제 Vasya는 ii가 11부터 nn까지일 때 ii-흥미로운 순열의 개수를 구하려고 한다. 어떤 ii에 대해 ii-흥미로운 순열이 없으면 Vasya는 더 큰 ii에 대해서는 계산하지 않는다. 예를 들어 22와 44는 서로소가 아니므로 길이 55인 55-흥미로운 순열은 없다.

Vasya는 큰 정수를 좋아하지 않으므로 순열의 개수를 주어진 정수 mm으로 나눈 나머지로 계산한다. 그 계산을 도와주자.

입력

첫째 줄에 두 정수 nn과 mm이 주어진다. (1≤n≤1001 \le n \le 100, 1≤m≤1091 \le m \le 10^9)

출력

길이 nn인 kk-흥미로운 순열이 적어도 하나 존재하는 최대의 kk를 kk라고 할 때, kk개의 줄을 출력한다. ii번째 줄에는 길이 nn인 ii-흥미로운 순열의 개수를 mm으로 나눈 나머지를 출력한다.

예제2

  1. 예제 1

    입력
    5 239
    
    예상 출력
    120
    108
    84
    48
    
  2. 예제 2

    입력
    4 8
    
    예상 출력
    0
    4
    4