Cerință
Se dă un graf neorientat cu noduri (numerotate de la la ) şi muchii. Vom defini dacă nodurile şi sunt adiacente (există o muchie între ele), respectiv dacă nodurile şi nu sunt adiacente.
O submulţime de noduri ale grafului se numeşte modul dacă îndeplineşte următoarea condiţie: oricare ar fi trei noduri , si astfel incat si , avem .
Mai exact, pentru orice nod din afara mulţimii , ori toate nodurile din sunt adiacente cu ori niciun nod din nu este adiacent cu . Câteva exemple simple de module sunt: mulţimea vidă, mulţimea tuturor nodurilor grafului, mulţimile ce constau din câte un singur nod al grafului.
Determinaţi numărul de module ale grafului dat, modulo .
Date de intrare
Prima linie a fişierului de intrare module.in
conţine numerele întregi şi , separate printr-un spaţiu. Următoarele linii conţin câte două numere întregi şi , separate printr-un spaţiu, având semnificaţia că există o muchie între nodul şi nodul în graf.
Date de ieșire
În fişierul de ieşire module.out
veţi afişa numărul de module ale grafului dat, modulo .
Restricții și precizări
- În fişierul de intrare nu se vor repeta muchii.
Exemplu
module.in
7 11
5 1
5 6
1 2
1 3
1 7
6 2
6 3
6 7
4 2
4 3
4 7
module.out
14
Explicație
Cele module sunt:
.