Enunț
RAU-Gigel se pregătește pentru admiterea la facultate. Curios din fire, el împrumută niște cursuri de la un prieten student, de unde află despre limbajele formale, gramatici, automate finite, expresii regulate și multe alte lucruri interesante. Găsește acolo și o problemă: Se consideră un alfabet format din simboluri (diferite două câte două). Pe mulțimea este definită o relație de ordine totală (să o numim lexicografică), adică orice două elemente și alegem din ( diferit de ), avem fie , fie . Câte cuvinte se pot forma cu simboluri din alfabetul astfel încât simbolurile prezente în cuvânt să fie în ordine strict crescătoare (de la stânga spre dreapta) și să nu existe în cuvânt două simboluri consecutive lexicografic? Deoarece calculele devin destul de complicate, RAU-Gigel ar avea nevoie de ajutorul vostru. În plus, numerele obținute s-ar putea să fie destul de mari, RAU-Gigel ar vrea să le calculați modulo .
Cerința
Ajutați-l pe RAU-Gigel să afle răspunsul la întrebare. Repede, dacă puteți!
Date de intrare
Fișierul de intrare limbajformal.in
conține pe prima linie un număr natural reprezentând numărul de simboluri din alfabet.
Date de ieșire
Fișierul de ieșire limbajformal.out
va conține un singur rând, pe care se află un sigur număr reprezentând răspunsul la întrebare.
Restricții și precizări
- ;
- Cuvintele au cel puțin un simbol;
- Pentru teste în valoare de de puncte: ;
- Pentru teste în valoare încă de puncte: .
Exemplu
limbajformal.in
5
limbajformal.out
12
Explicație:
Alfabetul conține simboluri. Să le notăm , cu . Există cuvinte care respectă cerințele problemei: . Secvența nu este validă pentru că simbolurile și sunt consecutive lexicografic. Secvența nu este validă pentru că simbolurile și sunt consecutive lexicografic.