아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

수학 숙제

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

요약
주어진 각 구간의 최대공약수가 지정된 값(최대 16)이 되도록 1 이상 10^9 이하의 정수 N개를 구성하고, 불가능하면 Impossible을 출력한다.
난이도

어려움10점 중 8점

유형
정수론, 수학, 세그먼트 트리, 그리디
정답자
아직 제출이 없습니다

문제

수학 선생님이 NN개의 정수 A1,…,ANA_1, \ldots, A_N으로 이루어진 수열을 만드는 숙제를 내주셨다. 각 ii에 대해 1≤Ai≤1 000 000 0001 \le A_i \le 1\,000\,000\,000을 만족해야 한다.

수열 AA는 MM개의 조건도 만족해야 한다. ii번째 조건은 연속한 부분수열 AXi,…,AYiA_{X_i}, \ldots, A_{Y_i} (1≤Xi≤Yi≤N1 \le X_i \le Y_i \le N)의 최대공약수가 ZiZ_i와 같아야 한다는 것이다. 수열의 최대공약수는 수열의 모든 수를 나누는 가장 큰 정수 dd이다.

모든 조건을 만족하는 수열 AA를 아무거나 하나 찾거나, 그러한 수열이 존재하지 않는다고 판별하라.

입력

첫째 줄에 공백으로 구분된 두 정수 NN과 MM이 주어진다.

다음 MM개의 줄에 각각 공백으로 구분된 세 정수 XiX_i, YiY_i, ZiZ_i가 주어진다 (1≤i≤M1 \le i \le M).

출력

그러한 수열이 존재하지 않으면 한 줄에 문자열 Impossible을 출력한다. 그렇지 않으면 한 줄에 공백으로 구분된 NN개의 정수 A1,…,ANA_1, \ldots, A_N을 출력한다. 가능한 수열이 여러 개라면 아무거나 출력해도 된다.

제한

  • 1≤N≤150 0001 \le N \le 150\,000
  • 1≤M≤150 0001 \le M \le 150\,000
  • 각 ii에 대해 1≤Zi≤161 \le Z_i \le 16

예제2

  1. 예제 1

    입력
    2 2
    1 2 2
    2 2 6
    
    예상 출력
    4 6
    
  2. 예제 2

    입력
    2 2
    1 2 2
    2 2 5
    
    예상 출력
    Impossible