저녁 태권도

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

요약
N명의 학생에게 아침, 저녁, 결석으로 이루어진 길이 M의 문자열을 배정해 매일의 최소 인원 조건을 만족시킨다.
난이도

보통10점 중 6점

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

문제

2040년, KSA는 학생들의 체력 증진을 위해 저녁 태권도를 신설했다. 기존에는 매일 오전 7시부터 7시 반까지 아침 태권도를 진행했었는데, 학생들을 분산하기 위해 오후 10시부터 10시 반까지 시간을 마련했다. 학생 NN명은 MM일 동안 매일 아침 태권도와 저녁 태권도 중 하나를 선택해서 참석해야 한다. 단, 학교는 ii번째 날의 아침 태권도 수업에 A_iA\_i명 이상, 저녁 태권도에 B_iB\_i명 이상이 참석해야 한다는 조건을 내걸었다.

조건을 내걸자 매일 참여해야 한다는 사실에 학생들 사이에서 반발이 심했다. 이를 의식한 KSA는 각 학생에게 종이 카드를 11장씩 지급했다. 해당 종이 카드를 이용하면 하루 태권도에 참석하지 않게 된다. 학생들은 태권도 수업을 매우 싫어하기 때문에 반드시 종이 카드를 사용한다.

당신은 KSA 졸업생으로서 학생들이 어떻게 출석해야 다같이 무사히 태권도를 수강 완료할 수 있을지 알려주려고 한다.

입력

첫 번째 줄에 두 개의 정수 NN, MM이 공백으로 구분되어 주어진다.

다음 MM개의 줄 중 ii번째 줄에 두 개의 정수 A_iA\_i, B_iB\_i가 공백으로 구분되어 주어진다.

출력

모든 학생이 조건을 만족하여 태권도를 수강하는 방법이 존재한다면 첫 번째 줄에 YES를 출력하고 다음 NN개의 줄 중 ii번째 줄에 문자열 S_iS\_i를 출력한다. S_iS\_i는 +, -, X로 구성된 길이 MM의 문자열이고, jj번째 문자가 +이면 ii번째 학생이 jj번째 날에 아침 태권도에 참석하고, -이면 저녁 태권도에 참석하며, X이면 결석한다는 뜻이다. 모든 학생이 조건을 만족하여 태권도를 수강하는 방법이 존재하지 않는다면 대신 NO를 출력한다.

정답이 여러 개 존재한다면 그중 아무거나 출력해도 상관없다.

제한

  • 1≤N≤1001 \le N \le 100
  • 2≤M≤1002 \le M \le 100
  • 0≤A_i≤N0 \le A\_i \le N
  • 0≤B_i≤N0 \le B\_i \le N

예제2

  1. 예제 1

    입력
    5 4
    2 2
    2 1
    1 3
    3 0
    
    예상 출력
    YES
    +-+X
    +X--
    X+-+
    -+X+
    -X-+
    
  2. 예제 2

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