부품 테스트

시간 제한20초메모리 제한128 MB

요약
각 부품 종류마다 부품 하나에 필요한 서로 다른 검토자 수가 정해져 있고, 각 등급의 엔지니어가 검토할 수 있는 부품 수에 한도가 있을 때 모든 부품을 검토할 수 있는지 판정한다.
난이도

보통10점 중 7점

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

문제

INU전자의 엔지니어들이 새로운 전자부품을 개발했고, 앞으로 두 달 동안 이 부품들을 꼼꼼히 검토하고 테스트하려 합니다.

각 전자부품은 복잡도와 중요도에 따라 여러 클래스 중 하나로 분류됩니다. 같은 클래스에 속한 부품은 모두 같은 수의 검토자를 필요로 하며, 서로 다른 클래스는 서로 다른 수의 검토자를 필요로 할 수 있습니다. 하나의 클래스 안에는 여러 개의 부품이 있을 수 있습니다. 한 부품을 검토하는 검토자들은 서로 모두 달라야 합니다(같은 엔지니어가 한 부품을 두 번 검토할 수는 없습니다).

INU전자에는 여러 직급이 있습니다. 각 엔지니어는 정확히 하나의 직급을 가지며, 같은 직급의 엔지니어들은 검토할 수 있는 부품의 최대 개수가 모두 같습니다. 모든 엔지니어는 어떤 부품이든 검토할 수 있습니다. 한 엔지니어는 같은 클래스의 여러 부품이나 서로 다른 클래스의 부품을 검토할 수 있지만, 같은 부품을 두 번 이상 검토할 수는 없습니다.

모든 부품의 테스트를 두 달 안에 마칠 수 있는지 판단하세요.

입력

입력은 여러 개의 테스트 케이스로 이루어집니다.

각 테스트 케이스의 첫 줄에는 두 정수 nn (1≤n≤10,0001 \le n \le 10{,}000)과 mm (1≤m≤10,0001 \le m \le 10{,}000)이 주어집니다. nn은 부품 클래스의 수, mm은 엔지니어 직급의 수입니다.

이어지는 nn개의 줄에는 각 클래스의 정보가 두 정수 jj (1≤j≤100,0001 \le j \le 100{,}000)와 cc (0≤c≤100,0000 \le c \le 100{,}000)로 주어집니다. jj는 그 클래스에 속한 부품의 개수이고, cc는 그 클래스의 각 부품을 검토하는 데 필요한 서로 다른 검토자의 수입니다.

이어지는 mm개의 줄에는 각 직급의 정보가 두 정수 kk (1≤k≤100,0001 \le k \le 100{,}000)와 dd (0≤d≤100,0000 \le d \le 100{,}000)로 주어집니다. kk는 그 직급을 가진 엔지니어의 수이고, dd는 그 직급의 엔지니어 한 명이 검토할 수 있는 부품의 최대 개수입니다.

입력의 끝은 두 정수가 모두 00인 줄로 표시됩니다.

출력

각 테스트 케이스마다, 모든 부품의 검토를 마칠 수 있으면 11을, 그렇지 않으면 00을 한 줄에 출력하세요.

예제3

  1. 예제 1

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

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

    입력
    1 1
    1 2
    1 5
    0 0
    
    예상 출력
    0