Un tânăr elev vietnamez a cumpărat de la magazin discuri. Pe fiecare disc este o etichetă pe care este scris diametrul acestuia exprimat în cm.
Tânărul vrea să așeze, în toate modurile posibile, cele discuri pe tije (numerotate de la la ), astfel încât, pe fiecare tijă, discurile să fie ordonate după diametru strict crescător, de la vârf la bază. În plus, nicio tijă nu trebuie să rămână liberă.
Două moduri de așezare sunt considerate distincte dacă există cel puțin o tijă pentru care valorile de pe etichetele discurilor așezate pe tija respectivă diferă în cele două așezări.
De exemplu, dacă avem discuri cu diametrele , acestea pot fi așezate pe tije în două moduri distincte:

Cerință
Scrieți un program care, cunoscând , , precum și diametrele celor discuri, determină numărul de moduri distincte de așezare a discurilor în condițiile din enunț (modulo ).
Date de intrare
Fișierul de intrare hanoi.in conține pe prima linie numerele naturale și , având semnificația din enunț. Pe cea de a doua linie se află numere naturale reprezentând diametrele celor discuri. Valorile scrise pe aceeași linie sunt separate prin câte un spațiu.
Date de ieșire
Fișierul de ieșire hanoi.out conține o singură linie pe care este scris rezultatul cerut.
Restricții și precizări
- diametrele discurilor
| # | Punctaj | Restricții |
|---|---|---|
| 1 | 7 | și diametrele discurilor sunt distincte |
| 2 | 7 | și diametrele discurilor sunt distincte |
| 3 | 37 | Diametrele discurilor sunt distincte, fără alte restricții |
| 4 | 7 | și diametrele nu sunt distincte |
| 5 | 7 | și diametrele nu sunt distincte |
| 6 | 35 | Diametrele discurilor nu sunt distincte, fără alte restricții |
Exemplul 1
hanoi.in
3 2
2 1 3
hanoi.out
6
Explicație
Cele moduri distincte de așezare sunt:
| modul | tija 1 | tija 2 |
|---|---|---|
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 | ||
| 6 |
Vezi Figura 2.

Exemplul 2
hanoi.in
4 3
4 1 1 3
hanoi.out
15
Explicație
Cele moduri distincte de așezare sunt:
| modul | tija 1 | tija 2 | tija 3 |
|---|---|---|---|
| 1 | |||
| 2 | |||
| 3 | |||
| 4 | |||
| 5 | |||
| 6 | |||
| 7 | |||
| 8 | |||
| 9 | |||
| 10 | |||
| 11 | |||
| 12 | |||
| 13 | |||
| 14 | |||
| 15 |