parcare

Time limit: 0.1s Memory limit: 64MB Input: parcare.in Output: parcare.out

Într-o țară în curs de dezvoltare, într-un oraș oarecare, parcarea pe care primăria dorește să o construiască are formă dreptunghiulară și o putem codifica folosind o matrice cu LL linii (numerotate de la 11 la LL) și CC coloane (numerotate de la 11 la CC). Practic, pentru a o pava pe toată ar fi necesari LCL \cdot C metri pătrați de dale. Firma care produce dalele și care este agreată de primar construiește dale cu lățimea de un metru și lungime care poate fi mai mare de un metru (dar o valoare întreagă). Firma asamblează dalele în pachete și toate pachetele au exact același conținut (dalele unui pachet pot avea lungimi diferite). Pentru că risipa banului public este în perioada sa de apogeu, primarul hotărăște să cumpere pentru fiecare coloană a parcării câte un pachet de dale și nu va putea folosi la pavarea acelei coloane decât dale din acel pachet. Se mai cunoaște și că în fiecare coloană este plantat exact un copac iar acesta nu va putea fi tăiat. Considerăm că un copac ocupă exact zona corespunzătoare unei dale 111 \cdot 1.

Cerința

După ce un consilier atrage atenția că e posibil ca structura pachetului achiziționat să nu permită pavarea oricărei coloane, primarul nefiind de acord cu această ipoteză hotărăște să te angajeze ca programator și să îi spui care este numărul de variante distincte de pavare a parcării. La numărarea variantelor trebuie ținut cont că toate dalele dintr-un pachet sunt de culori diferite. Considerăm distincte două modalități de pavare dacă există cel puțin o coloană unde același loc este acoperit de dale de culori diferite.

Date de intrare

Fișierul parcare.in conține pe prima linie numerele: NN (numărul de dale dintr-un pachet), LL (numărul de linii ale parcării), CC (numărul de coloane ale parcării). Linia a doua conține NN valori naturale nenule reprezentând lungimile dalelor (ele au lățimea 11). Pot fi dale de aceeași dimensiune, ele diferă însă prin culoare. Linia a treia conține CC numere, al ii-lea reprezentând linia pe care se află copacul de pe coloana ii. Numerele de pe fiecare linie sunt separate prin câte un spațiu.

Date de ieșire

Fișierul parcare.out conține numărul de modalități de pavare, modulo 666 013666 \ 013

Restricții și precizări

  • 1N201 \leq N \leq 20
  • 2L202 \leq L \leq 20
  • 1C100 0001 \leq C \leq 100 \ 000
  • Lungimile dalelor sunt numere naturale nenule mai mici decât LL
  • Valorile de pe ultima linie a fișierului de intrare sunt cuprinse între 11 și LL, inclusiv

Exemplu

parcare.in

5 7 2
1 2 3 4 5
4 2

parcare.out

12

Log in or sign up to be able to send submissions!