#P9345. Nostalgia Degree

    ID: 22498 Type: Default 1000ms 256MiB

Nostalgia Degree

Nostalgia Degree

A sunset can be regarded as a painting composed of n distinct colors. In other words, it is a permutation a = [a1, a2, ..., an] of the numbers 1 through n.

For a given permutation a, define an auxiliary sequence b as follows:

  • For each i (1 ≤ in), let bi = \(\gcd(a_i, a_{i+1})\) with the cyclic condition \(a_{n+1} = a_1\). (Here \(\gcd(x,y)\) denotes the greatest common divisor of \(x\) and \(y\).)
  • The nostalgia degree of the permutation is defined as the number of distinct elements present in the sequence b.

Your task is: Given two integers n and k, determine whether there exists a permutation p of length n whose nostalgia degree is exactly k. If such a permutation exists, output any valid permutation; otherwise, output -1.

Note: When n = 1, the only possible permutation is [1] (its nostalgia degree equals \(\gcd(1,1)=1\)).

Constraints:

  • For n = 1: k must be 1.
  • For n ≥ 2: It can be shown that using a special construction one can force certain adjacent pairs to have a GCD greater than 1. In particular, if we force a pair to be of the form \((d,2d)\) (with \(2d \le n\) and \(d \ge 2\)) then \(\gcd(d, 2d)= d\). However, such forced pairs must be chosen so that no number is repeated in two pairs. It turns out that the maximum number of forced pairs we can build is m where
    \( m = \bigl|\{ x: 2 \le x \le \lfloor n/2\rfloor, \ x \text{ is chosen so that } x \text{ and } 2x \text{ are disjoint} \}\bigr| \).
    Thus the maximum nostalgia degree achievable is \(1 + m\) (1 coming from the GCD 1 that usually appears in other adjacent pairs). Therefore, for a solution to exist (when n ≥ 2), you must have \(1 \le k \le 1 + m\).

inputFormat

The input consists of a single line containing two integers n and k.

  • If n = 1 then k must be 1.
  • If n ≥ 2 then it is required that \(1 \le k \le 1+m\) where \(m\) is defined as above (in particular, one can force at most a certain number of adjacent pairs to yield a GCD different from 1).

outputFormat

If a valid permutation with nostalgia degree k exists, output any permutation of the numbers 1 through n (space‐separated) that yields exactly k distinct values among \(b_i = \gcd(a_i, a_{i+1})\) (with \(a_{n+1} = a_1\)). Otherwise, output -1.

sample

5 2
1 2 4 3 5