간격 없는 순열
시간 제한2초메모리 제한512 MB
길이 n인 순열 가운데 길이가 2 이상 n-1 이하인 연속 구간의 값이 연속된 정수를 이루지 않는 순열의 개수를 소수 p로 나눈 나머지로 구합니다.
문제
부터 까지의 정수로 이루어진 순열 을 생각하자. 순열의 연속된 부분 이 연속된 정수 집합을 재배열한 것이면 이를 구간이라고 한다. 예를 들어 순열 에는 , , 등의 구간이 있다.
모든 순열에는 자명한 구간이 있다. 순열 전체와 원소 하나로 이루어진 구간이 그것이다. 길이가 이상 이하인 자명하지 않은 구간이 없는 순열을 간격 없는 순열이라고 한다.
길이가 인 간격 없는 순열의 개수를 소수 로 나눈 나머지를 구하라.
입력
첫 줄에 테스트 케이스의 수 ()와 소수 ()가 주어진다. 이후 개의 줄에는 순열의 길이 ()이 한 줄에 하나씩 주어진다.
출력
각 테스트 케이스마다 길이가 인 간격 없는 순열의 개수를 로 나눈 나머지를 한 줄에 출력한다.
힌트
이면 유일한 순열이 간격 없는 순열이다. 이면 간격 없는 순열은 과 두 개이다. 이면 , , , , , 여섯 개이다. 이면 28146개이므로 전부 나열하지 않는다. 예를 들어 , , , 는 간격 없는 순열이다.