만드는 중입니다

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

Too Many Traps

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

요약
신발 N개의 추진력과 이불 M개의 위치가 주어질 때, 모든 이불을 피하면서 신발을 한 번씩 쓰는 순서를 찾거나 불가능하면 -1을 출력합니다.
난이도

어려움10점 중 8점

유형
누적 합, 배열, 그리디
정답자
아직 제출이 없습니다

문제

혜아는 NN개의 신발을 신고 있다. ii번째 신발의 추진력은 AiA_i이다. 혜아는 현재 위치에서 A1+A2+⋯+ANA_1 + A_2 + \cdots + A_N km 떨어진 보물이 숨겨진 곳으로 가려고 한다.

혜아는 신발의 추진력(!)을 사용해 점프할 수 있다. ii번째 신발을 사용하면 현재 위치에서 AiA_i km 떨어진 곳으로 점프할 수 있다. 점프하면 그 신발은 닳아 없어진다. 모든 신발을 보물이 있는 방향으로 한 번씩 사용하면, 혜아는 보물이 있는 곳에 도달해 건물주가 될 수 있다.

카흐는 건물에만 틀어박힐 혜아가 걱정되어 MM개의 이불을 놓았다. 이불은 시작 지점에서 보물이 숨겨진 곳까지 이어지는 직선 위에 놓여 있다. 점프해서 착지한 위치가 이불 위라면, 혜아는 이불에서 나오지 않아 보물을 찾지 못한다. 보물이 있는 곳에 이불이 있으면, 혜아는 보물을 찾지 않고 바로 이불에 누워 버린다.

이불이 있는 곳을 피해서 보물이 있는 곳에 도착하는 방법을 계산해 주자.

입력

첫째 줄에 NN과 MM이 공백으로 구분되어 주어진다. (1≤M<N≤1000001 \le M < N \le 100000)

둘째 줄에는 NN개의 수가 공백으로 구분되어 주어진다. ii번째 수는 AiA_i이다. 추진력은 1 이상 10910^9 이하의 서로 다른 수이다.

셋째 줄에는 MM개의 수가 공백으로 구분되어 주어진다. 수 xx는 이불이 현재 위치에서 보물이 숨겨진 방향으로 xx km 떨어져 있다는 뜻이다. 이불이 숨겨진 위치는 1 이상 101410^{14} 이하의 서로 다른 수이다.

출력

보물이 있는 곳에 도착할 수 없으면 첫째 줄에 -1을 출력한다.

도착할 수 있으면 첫째 줄에 NN개의 수를 공백으로 구분하여 출력한다. ii번째 수가 jj이면 ii번째 점프에 신발 jj를 사용한다는 뜻이다. 답이 여러 개이면 아무거나 출력해도 된다.

예제3

  1. 예제 1

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

    입력
    2 1
    4 5
    9
    
    예상 출력
    -1
    
  3. 예제 3

    입력
    3 2
    4 5 9
    4 14
    
    예상 출력
    2 1 3