생일 케이크

원 위의 N개 장식과 중심 장식의 색을 K가지 색으로 칠하는 경우의 수를, 시간이 지나며 중심과 다른 색이어야 하는 장식이 늘어날 때마다 구한다.

보통7동적 계획법조합론수학아직 제출이 없습니다시간 제한2초메모리 제한256 MB

문제

다현이의 생일을 맞아 원통 모양 쿠키 케이크를 준비했다. 케이크에는 원의 중심에 장식이 하나 있고, 원주 위에 장식이 NN개 있다. 원주의 장식에는 시계 방향으로 11번부터 NN번까지 번호를 붙인다.

쿠키 장식의 종류는 KK가지이고, 장식 하나마다 그중 한 종류를 고른다. 단, 원주에서 이웃한 두 장식은 종류가 달라야 한다. N2N \ge 2이면 1iN11 \le i \le N-1ii마다 ii번 장식과 i+1i+1번 장식이 이웃하고, N3N \ge 3이면 NN번 장식과 11번 장식도 이웃한다. N=1N = 1이면 원주에 이웃한 장식 쌍이 없다.

근우는 케이크를 NN번 자른다. ii번째 칼질은 중심의 장식에서 AiA_i번 장식까지 곧게 자른다. 한 번 잘린 장식은 중심의 장식과 종류가 달라야 한다. 즉 ii번째 칼질을 끝낸 상태에서는 A1,A2,,AiA_1, A_2, \dots, A_i번 장식이 모두 중심의 장식과 종류가 다르다.

아무것도 자르지 않은 상태를 시간 00, ii번째 칼질을 끝낸 상태를 시간 ii라고 하자. 각 시간마다 조건을 모두 만족하도록 장식 N+1N+1개에 종류를 정하는 방법의 수를 1,000,000,007로 나눈 나머지를 구하라.

입력

첫째 줄에 원주에 있는 장식의 개수 NN과 쿠키 종류의 수 KK가 주어진다. (1N1000001 \le N \le 100000, 1K101 \le K \le 10)

둘째 줄에 A1,A2,,ANA_1, A_2, \dots, A_N이 순서대로 주어진다. (1AiN1 \le A_i \le N) 같은 번호가 여러 번 나올 수 있고, 이미 잘린 장식을 다시 자르면 조건이 새로 늘어나지 않는다.

출력

N+1N+1개의 줄을 출력한다. ii번째 줄에는 시간 i1i-1에서의 방법의 수를 1,000,000,007로 나눈 나머지를 출력한다.