만드는 중입니다

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

영감을 주는 교수들

시간 제한3초메모리 제한2048 MB

요약
각 강의에 수강 인원 이상의 수용 인원을 가진 강의실을 배정합니다. 친절한 교수의 강의부터 더 좋은 강의실을 우선 주며, 배정이 불가능하면 impossible을 출력합니다.
난이도

보통10점 중 5점

유형
그리디, 정렬
정답자
아직 제출이 없습니다

문제

TU Delft에서는 점점 더 많은 강좌가 캠퍼스 강의로 돌아가고 있다. 그래서 어떤 강사에게 어떤 강의실을 배정할지 일정을 잡기가 더 어려워졌다. 학교는 알고리즘 전문가인 여러분에게 이 하위 문제의 해결을 요청했다.

동시에 진행되는 강의가 nn개 있으며, 1번부터 nn번까지 번호가 붙어 있다. ii번째 강의에는 캠퍼스에서 xix_i명의 학생이 출석한다. 강의는 담당 교수의 친근함 순으로 정렬되어 있으며, 가장 친근한 교수(모두가 누구인지 안다)가 1번 강의를 맡는다.

강의실은 mm개 있으며, 1번부터 mm번까지 번호가 붙어 있다. jj번째 강의실의 수용 인원은 cjc_j이다. 강의실 목록은 쾌적함 순으로 정렬되어 있으며, 가장 쾌적한 강의실이 맨 위에 있다.

강의와 강의실을 입력받아 강의실을 강의에 배정하는 유효한 배정을 만드는 프로그램을 작성하라. 유효한 배정에서는 강의에 배정된 강의실의 수용 인원이 그 강의에 출석하는 학생 수 이상이어야 한다.

유효한 배정이 여러 개라면, 가장 친근한 교수의 강의실이 가장 쾌적한 배정을 골라라. 그래도 같다면 2번 교수의 강의실이 가장 쾌적한 배정을 고르고, 이런 식으로 계속 비교한다.

입력

첫 줄에 강의 수 nn(1≤n≤50001\leq n\leq 5000)과 강의실 수 mm(1≤m≤50001\leq m \leq 5000)이 주어진다.

다음 줄에는 ii번째 강의에 출석하는 학생 수 xix_i(1≤xi≤1091\leq x_i \leq 10^9)가 nn개 주어진다.

마지막 줄에는 jj번째 강의실의 수용 인원 cjc_j(1≤cj≤1091\leq c_j \leq 10^9)가 mm개 주어진다.

출력

유효한 배정이 있으면 nn개의 수를 한 줄에 출력하라. ii번째 수는 강의 ii에 배정된 강의실의 번호이다.

유효한 배정이 없으면 impossible을 출력하라.

예제2

  1. 예제 1

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

    입력
    5 5
    3 2 1 4 8
    6 8 1 7 5
    
    예상 출력
    1 4 3 5 2