Poli are la facultate colegi. Unii dintre colegii lui Poli pot fi prieteni între ei, cu respectarea următoarelor condiţii:
- dacă persoana este prietenă cu persoana , atunci şi persoana este prietenă cu persoana ;
- dacă persoana este prietenă cu persoana şi persoana este prietenă cu persoana atunci persoana este prietenă cu persoana ;
- o persoană este tot timpul prietenă cu ea însăşi.
Definim o relaţie de prietenie ca fiind mulţimea prieteniilor formate între cei colegi.
Poli a mers prin facultate şi a reuşit să obţină de la fiecare persoană maxim o informaţie legată de cineva cu care acea persoană nu este prietenă.
Ştiind numărul de colegi ai lui Poli şi informaţiile pe care le-a obţinut acesta să se determine câte relaţii distincte de prietenie se pot forma care respectă informaţiile obţinute. O relaţie de prietenie este considerată diferită faţă de altă relaţie dacă există o pereche care în prima relaţie este prieten cu , iar în a doua relaţie nu este prieten cu .
Cerință
Să se scrie un program care să calculeze numărul total de relaţii de prietenie posibile.
Date de intrare
Fişierul prietenie.in
conţine pe prima linie şi , numărul de colegi, respectiv numărul de informaţii pe care le-a obţinut Poli. Următoarele linii conţin câte două numere reprezentând faptul că nu este prieten cu .
Date de ieșire
Fisierul prietenie.out
conţine pe singura sa linie numărul total de prietenii posibile modulo .
Restricții și precizări
- Fie două perechi şi dintre cele . Atunci , , , sunt distincte două câte două.
Exemplu
prietenie.in
3 1
1 3
prietenie.out
3
Explicație
Cele variante sunt:
- nimeni nu e prieten cu nimeni;
- prieten cu ;
- prieten cu .