Problem description


Slalom
(slalom)
Limit pamięci: 256 MB
Limit czasu: 3.00 s

Małgosia jest fanką sportów zimowych. Dzisiaj bierze udział w slalomie. Trasa slalomu jest przedstawiona jako prostokąt złożony z N × M pól. Małgosia startuje w polu o współrzędnych (1,1), a jej celem jest dotarcie do mety, znajdującej się w polu (N,M). Z pola (x,y) można zjechać na pole (x+1,y) oraz (x,y+1).

Na trasie rozłożone są przeszkody – prostokątne obszary, na które nie można wjechać. Małgosia może ominąć każdą przeszkodę na dwa sposoby – przeszkoda może znajdować się po lewej lub prawej stronie ścieżki wyznaczonej przez jej zjazd. Dziewczyna zastanawia się, na ile sposobów może przejechać trasę. Dwa sposoby uznajemy za różne, kiedy jakaś przeszkoda jest ominięta w inny sposób.

Poniższe rysunki przedstawiają sposoby przejechania tras z testów przykładowych.

  

Wejście

W pierwszym wierszu wejścia znajdują się trzy liczby N, M, K, oznaczające wymiary trasy oraz ilość przeszkód. W każdym z kolejnych K wierszy znajdują się cztery liczby naturalne x1, y1, x2, y2 (1 ≤ x1 ≤ x2 ≤ N, 1 ≤ y1 ≤ y2 ≤ M), oznaczające współrzędne lewego-dolnego oraz prawego-górnego pola należącego do przeszkody. Przeszkody nie nachodzą na siebie, ale pola różnych przeszkód mogą ze sobą sąsiadować.

Wyjście

W pierwszym wierszu wyjścia wypisz jedną liczbę, oznaczającą ilość różnych sposobów na przejechanie trasy modulo 109 + 7.

Ograniczenia

3 ≤ N, M ≤ 100 000, 0 ≤ K ≤ 100 000

Podzadania

Grupa Warunki Punkty
1 N, M, K ≤ 11 10
2 N, M, K ≤ 100 30
3 brak dodatkowych ograniczeń 60

Przykład

Wejście Wyjście
3 3 0
1
Wejście Wyjście
4 5 1
2 2 3 4
2
Wejście Wyjście
5 5 3
2 2 2 3
4 2 5 2
4 4 4 4
3