• Time limit: 1.00 s
  • Memory limit: 512 MB

Tehtäväsi on muodostaa ryhmiä lapsista. Jokainen lapsi on ilmoittanut, montako lasta saa olla vähintään ja enintään hänen ryhmässään. Tietty lapsi voi kuulua enintään yhteen ryhmään.

Sinun tulee käsitellä useita testejä, joissa lasten toiveet omat samat mutta muodostettavat ryhmät eroavat. Osa lapsista voi jäädä ryhmien ulkopuolelle, kunhan kaikki ryhmät saadaan muodostettua.

Syöte

Ensimmäisellä rivillä on kaksi kokonaislukua n ja t: lasten määrä sekä testien määrä.

Seuraavaksi tulee n riviä, jotka kuvaavat lasten toiveet. Jokainen rivi sisältää kaksi kokonaislukua a ja b: lapsi haluaa kuulua ryhmään, jossa on vähintään a ja enintään b lasta.

Lopuksi tulee t testiä. Jokaisen testin ensimmäinen rivi sisältää ryhmien määrän m ja toinen rivi sisältää m kokonaislukua k_1,k_2,\dots,k_m: ryhmien halutut koot.

Voit olettaa, että 1 \le a \le b \le n ja 1 \le k_i \le n.

Tuloste

Tulosta jokaisessa testissä YES, jos kaikki ryhmät voidaan muodostaa, ja NO muuten.

Esimerkki

Syöte:

5 3
2 4
1 5
3 5
4 4
3 5
1
3
2
1 2
2
1 4

Tuloste:

YES
NO
YES

Tässä tapauksessa lasten toiveet ovat seuraavat:

  • Lapsi 1 haluaa ryhmään, jonka koko on 2 \dots 4
  • Lapsi 2 haluaa ryhmään, jonka koko on 1 \dots 5
  • Lapsi 3 haluaa ryhmään, jonka koko on 3 \dots 5
  • Lapsi 4 haluaa ryhmään, jonka koko on 4
  • Lapsi 5 haluaa ryhmään, jonka koko on 3 \dots 5

Ensimmäisessä testissä tulee muodostaa yksi ryhmä, jossa on kolme lasta. Tämä ryhmä voidaan muodostaa esimerkiksi valitsemalla kolme ensimmäistä lasta.

Toisessa testissä tulee muodostaa kaksi ryhmää, joissa on yksi ja kaksi lasta. Tämä ei ole mahdollista.

Kolmannessa testissä tulee muodostaa kaksi ryhmää, joissa on yksi ja neljä lasta. Tässä lapsi 2 voi muodostaa yksin ryhmän ja kaikki muut lapset muodostavat toisen ryhmän.

Osatehtävä 1 (10 pistettä)

  • 1 \le n, t, m \le 100

Osatehtävä 2 (15 pistettä)

  • 1 \le n, t, m \le 1000

Osatehtävä 3 (75 pistettä)

  • 1 \le n, t \le 10^5
  • Kaikkien m-arvojen summa on enintään 10^5