Alibaba trebuie să descopere cifrul care deschide cufărul cu comoara cea mare. Cifrul este foarte greu de găsit. El a descoperit mai multe pietre, fiecare piatră având o altă culoare, pe fiecare piatră fiind scris un număr natural cu cel mult 4
cifre. Alibaba observă că numerele de pe fiecare piatră sunt distincte două câte două. Regula după care se formează cifrul este una foarte simplă, şi Alibaba a reuşit să o obţină destul de uşor: cifrul este format din alăturarea într-o anumită ordine a tuturor pietrelor. Ceea ce Alibaba mai ştie este că pe poziţia p
din cifru se găseşte cu siguranţă cifra k
.
Cerința
Scrieţi un program care determină numărul de variante de cifruri pe care va trebui să le încerce Alibaba. Numărul fiind foarte mare se va calcula modulo 46337
.
Date de intrare
Fișierul de ieșire cifru.out
va conține pe prima linie trei numere naturale n
, p
şi k
separate printr-un spaţiu, reprezentând numărul total de numere de pe pergament, poziţia p
şi respectiv cifra k
care se găseşte pe poziţia p
în cifru. Pe următoarele n
linii se găseşte câte unul din cele n
numere de pe pergament.
Date de ieșire
Pe prima linie a fişierului de ieşire cifru.out
se va scrie un număr natural reprezentând numărul de variante modulo 46337
de cifruri pe care va trebui să le încerce Alibaba.
Restricții și precizări
0 < n < 25
- Numerele de pe fiecare piatră sunt strict pozitive mai mici decât
10000
şi sunt distincte două câte două. 0 ≤ k ≤ 9
- Două cifruri diferă între ele prin ordinea de aşezare a pietrelor, chiar dacă numărul obţinut prin citirea numerelor de pe pietre este aceeaşi. De exemplu dacă există trei pietre având inscripţionate numerele
12
,3
şi respectiv123
, ele se pot lipi astfel:12-3-123
,123-12-3
, cele două cifruri considerându-se diferite, cifrele având culori diferite.
Exemplu:
cifru.in
7 6 2 12 56 3 214 523 6 2
cifru.out
1548