Time limit: 1s
Memory limit: 64MB
Input:
Output:
Cerință
Dat fiind un vector de elemente, putem să facem următoarea operație de câte ori vrem (maxim ), pornind inițial cu un scor nul:
- Alegem doi indici și , cu , astfel încât ( xor pe biți ) sa fie un număr de tipul .
- Adăugăm scorului nostru valoarea: modulo P.
- Setăm fie fie cu valoarea , iar indicele setat nu va mai putea fi folosit.
Care este scorul maxim pe care îl putem obține?
Date de intrare
Pe prima linie se găsesc două numere întregi, și .
Pe următoarea linie se găsește șirul de numere .
Date de ieșire
Pe prima linie se va găsi un singur număr întreg, scorul maxim obținut.
Restricții și precizări
- ;
- ;
- Rezultatul final nu se calculează modulo , doar scorurile operaților.
Exemplul 1
stdin
3 4
1 2 3
stdout
3
Explicație
Alegem o singură dată , (putem face asta pentru că xor-ul lor este care este ). Scorul total va fii deci iar sub modul P . Nu putem obține un scor mai bun.
Exemplul 2
stdin
6 11
4 891 38 19 43 99
stdout
13