만드는 중입니다

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

실험적 치료

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

요약
각 쌍에서 알약 종류를 하나씩 골라 종류 j가 정확히 c_j번 선택되게 하는 방법을 찾고, 불가능하면 -1을 출력합니다.
난이도

보통10점 중 6점

유형
그래프, BFS
정답자
아직 제출이 없습니다

문제

새 환자의 진단을 여러 번 실패한 하우스는 실험적인 치료법을 써 보기로 했다. 치료를 하는 동안 포먼은 매시간 환자에게 두 알약 중 하나를 고르게 했다. 환자가 nn번째 알약을 먹고 30분이 지나자 건강이 급격히 좋아졌고, 환자는 기적적으로 살아났다. 환자는 각 종류의 알약을 몇 알씩 먹었는지 기억하고, 포먼은 환자에게 제시한 알약의 모든 쌍을 기억한다. 같은 증상의 환자를 나중에 치료할 수 있도록, 하우스는 환자가 먹은 각 알약의 종류를 복원하려 한다. 그는 당신에게 도움을 요청했다.

입력

첫 줄에 환자가 먹은 알약의 수 nn과 병원에 있는 알약 종류의 수 mm이 주어진다 (1≤n≤10001 \le n \le 1000, 2≤m≤10002 \le m \le 1000). 둘째 줄부터 (n+1)(n+1)번째 줄까지 각 ii번째 줄에는 포먼이 i−1i-1시간에 제시한 알약 종류의 번호 aia_i, bib_i가 주어진다 (1≤ai,bi≤m1 \le a_i, b_i \le m, ai≠bia_i \ne b_i). 마지막 줄에는 mm개의 정수 cjc_j가 주어진다. cjc_j는 번호가 jj인 알약 종류를 환자가 먹은 개수이다 (0≤cj≤n0 \le c_j \le n). 알약 종류의 번호는 1부터 시작한다.

출력

ii시간에 먹은 알약의 종류 번호를 ii번째 수로 하는 nn개의 수를 출력한다. 답이 여러 개이면 아무거나 출력해도 된다. 답이 존재하지 않으면 −1-1을 한 개 출력한다.

예제2

  1. 예제 1

    입력
    3 3
    1 2
    1 3
    2 3
    1 2 0
    
    예상 출력
    2 1 2
    
  2. 예제 2

    입력
    3 3
    1 2
    1 3
    2 3
    1 1 0
    
    예상 출력
    -1