CSES - Ruudukko
  • Time limit: 1.00 s
  • Memory limit: 128 MB

Ruudukon koko on n×nn \times n, vasen yläkulma on (1,1)(1,1) ja oikea alakulma on (n,n)(n,n).

Tehtäväsi on kulkea ruudukon vasemmasta yläkulmasta oikeaan alakulmaan. Saat liikkua joka askeleella ruudun oikealle tai alaspäin. Lisähaasteena ruudukossa on mm ruutua, joissa on ansa. Et voi kulkea tällaiseen ruutuun.

Montako mahdollista reittiä on olemassa?

Syöte

Syötteen ensimmäisellä rivillä on kaksi kokonaislukua nn ja mm: ruudukon koko ja ansojen määrä.

Tämän jälkeen syötteessä on mm riviä, joista jokainen kuvaa yhden ansan. Rivillä on kaksi kokonaislukua yy ja xx: ansan sijainti.

Jokainen ansa on eri kohdassa, ja voit lisäksi olettaa, että ruudukon vasen yläkulma ja oikea alakulma eivät ole ansoja.

Tuloste

Tulosta reittien määrä modulo 109+710^9+7.

Rajat

  • 1n1061 \le n \le 10^6
  • 1m10001 \le m \le 1000
  • 1y,xn1 \le y,x \le n

Esimerkki

Syöte:

3 1
2 2

Tuloste:

2