Problem description


Kombinatoryczny Żabuś
(G)
Limit pamięci: 256 MB
Limit czasu: 1.00 s

-Ten świat jest padołem łez, Greg. Życie to nie zabawa. - Beatrice, niebieski ptak, spojrzała z góry na Grega, który niósł swoją żabkę pod pachą. Jej głos był pełen pouczenia i troski. Po kilku minutach jej monologu… Greg już zniknął. - Hej, gdzie jest Greg?

-Och. Uh, pewnie gdzieś sobie poszedł – odparł spokojnie Wirt, poprawiając kapelusz.

Tymczasem Greg biegł przez las z dzbankiem i żabką na głowie, z energią, która mogłaby zawstydzić wiatr.

-Musimy robić swoje, aby ten świat był lepszy! - krzyczał, przeskakując przez korzenie.

-Raur – odpowiedziała mu żabka.

Greg zatrzymał się, gdy usłyszał cichą melodię pianina, dobiegającą z budynku pośród drzew.

-Jeju! Szkoła?! Tylko nie dzisiaj! – wrzasnął w panice i uciekł w stronę pobliskiej rzeczki, gdzie zauważył grupę zwierzątek – wagarowiczów, nudzących się w cieniu drzew.

Po krótkiej rozmowie z nowymi towarzyszami, Greg szybko zorientował się, że rozmowa z nimi ma mniej treści, niż rozmowa z dzbanuszkiem na głowie. Żaden z nich nie słyszał o palindromach, nie mówiąc już o kombinatoryce. Greg, nieco zmartwiony, uznał, że świat nie może być tak mdły i nijaki, i postanowił nauczyć swoich nowych znajomych czegoś nowego. Zaczął mówić o swojej ulubionej grze w dwa stare kocury. Ale zaraz przerwał. To nie ta gra. Wrócił więc do sedna i wyjaśnił, że ich zadanie jest proste: wymyślić imię dla jego żabki. Żadnych prostych słów, żadnych banalnych propozycji.


Ale Greg po zrobieniu zadania A, B, i wszystkich pozostałych, nie chciał już stawiać na prostotę. Palindromy w ich klasycznej formie? Nuuuda. Tym razem wpadł na pomysł, by wypróbować formy angażującej wszystkich jego M kolegów do zabawy. Imie dla żabusia powinno być N-literowym słowem, które korzysta z alfabetu o K różnych literach. Każdy z M wagarowiczów wskazuje parę indeksów (li,ri), określając, że podciąg imienia od pozycji li do ri włącznie musi być palindromem.

Dla przypomnienia, palindromem nazywamy słowo, które czytane od lewej do prawej i od prawej do lewej, jest takie samo.

Ale zaraz… - pomyslał Greg. - Ile w ogóle jest takich imion?

Twoim zadaniem jest policzenie, ile różnych imion, spełniających te warunki, Greg może wymyślić dla swojej żabki.

Wejście

W pierwszym wierszu wejścia znajdują się trzy liczby - N, K oraz M (1 ≤ N, K ≤ 2000, 0 ≤ M ≤ 2000).

W kolejnych M wierszach wejścia znajdują się opisy dane przez kolegów: w i-tym (1 ≤ i ≤ M) wierszu znajduje się para li, ri (1 ≤ li ≤ ri ≤ N).

Wyjście

W jedynym wierszu wyjścia powinna się znaleźć liczba sposobów, na które można stworzyć słowo spełniające warunki Grega, modulo 109 + 7.

Ograniczenia

1 ≤ N, K ≤ 2000,

0 ≤ M ≤ 2000.

Niektóre testy spełniają warunek M = 0.

Przykład

Wejście Wyjście Wyjaśnienie
5 3 2
1 3
2 5
9

Greg może ułożyć nastepujące imiona (korzystając dla przykładu z trzech pierwszy liter z alfabetu): aaaaa, abaab, acaac, babba, bbbbb, bcbbc, cacca, cbccb, ccccc.