만드는 중입니다

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

오렌지 섬 여행하기

시간 제한1초메모리 제한1024 MB

요약
N이 주어질 때 인접한 나무의 번호가 서로소인 경로로 모든 오렌지를 먹는 순서를 찾고, 불가능하면 -1을 출력합니다.
난이도

보통10점 중 6점

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

문제

브루는 오렌지 섬으로 여행을 떠났다. 오렌지 섬에는 NN개의 오렌지 나무가 서 있고, 이들은 각각 1번부터 NN번까지의 번호가 붙어 있다.

브루는 섬의 1번 오렌지 나무에게 오렌지 섬의 역사를 물었다. 1번 오렌지 나무는 아래와 같이 오렌지 섬의 역사를 읊어 주었다.

"태초에, NN 그루의 오렌지 나무는 오렌지를 하나도 가지고 있지 않았단다.

어느 날, 모든 나무들은 서로 한 번씩 악수를 했지. 악수를 한 두 나무의 번호가 서로소였을 때, 두 나무는 좋은 관계를 형성하고 더 큰 번호의 나무에 오렌지가 하나 자랐어.

악수가 모두 끝난 뒤, 오렌지를 가지지 못한 1번 오렌지 나무에도 오렌지가 하나 자랐단다."

- 1번 오렌지 나무

예를 들어, N=4N=4일 경우에는, 1번, 2번 나무는 오렌지를 각각 하나씩 가지고 있고, 3번, 4번 나무는 오렌지를 각각 두 개씩 가지고 있게 된다.

브루는 오렌지 섬의 모든 오렌지를 따 먹으려고 한다. 구체적으로, 브루는 아래와 같은 과정을 통해 오렌지를 먹게 된다.

  1. 아무 나무로 이동해 오렌지를 정확히 하나 따 먹는다.
  2. 그 후, 현재 위치한 나무와 좋은 관계인 나무로 이동해 오렌지를 정확히 하나 따 먹는다.
  3. 오렌지를 모두 먹을 때까지 2번 과정을 반복한다.

입력

첫째 줄에는 오렌지 섬에 있는 나무의 수 NN이 주어진다.

출력

브루가 모든 오렌지를 따 먹는 것이 가능하다면, 브루가 오렌지를 먹는 순서대로 오렌지 나무의 번호를 출력 예시와 같은 형식으로 출력한다. 불가능하다면 -1을 출력한다.

제한

1≤N≤1031 \le N \le 10^3

예제1

  1. 예제 1

    입력
    4
    
    예상 출력
    1 2 3 4 3 4