직선 도로 어딘가에 특별한 물체 여러 개가 묻혀 있다. 직선 도로를 길이 K의 일차원 배열로 생각하자. 각 단위 구간에는 물체가 하나 있거나(#) 없다(-). 아래 그림에서 숫자는 단위 구간의 번호이고, ▲ 표시가 있는 칸에 물체가 있다.
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ▲ | ▲ | ▲ | ▲ | ▲ | ▲ |
그림 1
우리는 연속한 구간에 들어 있는 물체의 개수를 질의 Probe[x, y]로 확인할 수 있다. 구간 x부터 y까지에 물체가 r개 있으면 Probe[x, y] = r로 나타낸다(단 x≤y). 예를 들어 그림 1에서는 Probe[2, 7] = 3, Probe[2, 2] = 0, Probe[6, 9] = 4, Probe[5, 12] = 5이다.
주어진 모든 탐사 결과를 동시에 만족하는 도로의 물체 배치를 복원하는 프로그램을 작성하라.
첫 줄에 두 정수 K와 N이 주어진다. K는 전체 구간의 길이, N은 탐사 결과의 개수이다. 이어지는 N개의 줄에는 각각 하나의 탐사 결과가 공백으로 구분된 세 정수 x y r로 주어지며, 이는 Probe[x, y] = r를 뜻한다.
제한: 3≤K≤40, 2≤N≤1000, 1≤x≤y≤K, 0≤r≤1000.
모든 탐사 결과를 만족하는 배치를 길이 K의 문자열로 출력한다. 물체가 있는 칸은 #, 없는 칸은 -로 표시한다. 조건을 만족하는 배치가 여러 개이면 그중 사전순으로 가장 앞서는 문자열을 출력한다(문자 단위로 비교하며, #이 -보다 앞선다). 모든 탐사 결과를 만족하는 배치가 존재하지 않으면 NONE을 출력한다.