만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

장식

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

요약
N과 K가 주어질 때, N 미만의 서로 다른 간격 K개를 약수 개수 규칙에 따라 이어 합이 가장 작게 구합니다. 불가능하면 -1을 출력합니다.
난이도

어려움10점 중 8점

유형
그래프, 정수론
정답자
아직 제출이 없습니다

문제

집을 여러 달 봉쇄 생활로 보내고 나니 집 인테리어가 지겨워져서 새로 꾸미기로 했다. 풍수 인테리어와 최근 집 디자인 트렌드를 다룬 블로그 글과 잡지를 많이 읽었고, 직접 만들 책장에 디자이너 Sweta Marc의 아이디어를 재현하기로 했다.

Marc에 따르면 조화로운 책장에는 여러 선반이 불균일한 간격으로 놓이고, 아주 정확한 규칙을 따른다. 이런 책장은 평온 값 NN을 가지며, 아래에서 위로 K+1K+1개의 선반으로 이루어진다. 인접한 선반 사이의 간격은 아래에서 위로 s1,…,sKs_1, \ldots, s_K밀리미터다. 이 간격들은 다음 성질을 만족해야 한다.

  1. 이질성: 두 간격의 높이가 같으면 안 된다.
  2. 높이 제한: 모든 i∈[1,K]i \in [1, K]에 대해 0≤si<N0 \leq s_i < N이어야 한다. 간격 중 하나는 크기가 0일 수 있다. 이는 Sweta의 취향을 시각적으로 매력적으로 만드는 특이점 중 하나다. 공간이 낭비되지만, 우아함과 웰빙, 그리고 트렌디함을 위해 감수할 준비가 되어 있다.
  3. 평온성: 모든 i∈[1,K−1]i \in [1, K-1]에 대해 si+1s_{i+1}은 sis_i에 sis_i의 약수 개수를 더한 값과 법 NN에 대해 합동이다. Marc 씨는 세련되고 산술을 좋아한다.

Marc의 조언에 따라 책장을 설계해 보았지만 조건을 모두 만족시키기 어려웠다. 찾은 해는 집에 두기에 너무 높은 책장뿐이었다.

그래서 NN과 KK가 주어졌을 때, 가능한 책장 중 높이가 가장 낮은 것, 즉 간격의 합 s1+⋯+sKs_1 + \cdots + s_K가 가장 작은 책장 하나의 간격 s1,…,sKs_1, \ldots, s_K를 계산하는 프로그램을 작성한다.

입력

입력은 한 줄이며, 공백으로 구분된 정수 NN과 KK가 주어진다.

출력

한 줄을 출력한다. Marc의 조건을 KK와 NN으로 만족시킬 수 없으면 −1-1을 출력한다. 그렇지 않으면 조건을 만족하는 최소 높이 책장 중 하나의 선반 간격 s1,…,sKs_1, \ldots, s_K를 출력한다. 해가 여러 개이면 그중 아무 해나 출력하면 된다.

제한

1≤N≤1 000 0001 \leq N \leq 1\,000\,000

1≤K≤1 000 0001 \leq K \leq 1\,000\,000

힌트

다음 정의를 떠올려 보자. aa와 bb는 임의의 정수이다.

  • aa가 bb를 나눈다는 것은 b=aqb = aq를 만족하는 정수 qq가 존재한다는 뜻이다.
  • aa가 bb의 약수라는 것은 b≠0b \neq 0이고 aa가 bb를 나눈다는 뜻이다.
  • aa가 bb와 합동이라는 것은 NN이 b−ab-a를 나눈다는 뜻이다.

예제2

  1. 예제 1

    입력
    18 10
    
    예상 출력
    11 13 15 1 2 4 7 9 12 0
    
  2. 예제 2

    입력
    168 9
    
    예상 출력
    1 2 4 7 9 12 18 24 32