Se dau două numere întregi și două șiruri de numere întregi nenegative , de elemente, și , de elemente. Se definește apoi matricea cu linii și coloane, unde elementul de pe linia și coloana este definit de relația
Operatorul xor reprezintă sau-ul exclusiv pe biți, scris ^
în C++.
Definim valoarea , pentru , , astfel:
Akane este o fire mai curioasă, și vrea să afle următoarea valoare:
O puteți ajuta să calculeze această valoare, modulo ?
Date de intrare
Pe primul rând se găsesc numerele , cu semnificația din enunț. Pe al doilea rând se găsesc numere, elementele șirului . Pe al treilea rând se găsesc numere, elementele șirului .
Date de ieșire
Se va afișa pe primul rând un număr întreg reprezentând valoarea cerută, modulo .
Restricții
- .
- , pentru .
Subtask 1 (30 puncte)
- .
Subtask 2 (40 puncte)
- .
Subtask 3 (30 puncte)
- Fără restricții suplimentare
Exemple
stdin
3 1
1 1 1
0
stdout
20
stdin
3 1
1 2 3
0
stdout
84
stdin
3 2
1 2 3
1 2
stdout
912
Explicații
Pentru primul exemplu avem ca .
Vor fi submatrici formate dintr-un singur element care vor avea valoarea egală cu , submatrici formate din elemente care vor avea valoarea egală cu și în cele din urma, matricea întreagă care va avea valoarea 32 = 9. Însumând aceste valori obținem . este chiar .
Pentru ultimul exemplu, .