Zadanie
Kreatívny názov
Počet bodov: 100
Nájdite počet reťazcov \(r\) s nasledujúcimi vlastnosťami: - \(r\) má dĺžku \(n\) písmen, pričom každé písmeno patrí do abecedy s veľkosťou \(k\) (napr. \(k = 26\) pre anglickú abecedu) - \(r\) je palindróm - pre každé \(l\) medzi \(2\) a \(n-1\) (vrátane) platí, že prefix \(r\) s dĺžkou \(l\) nie je palindróm
Keďže tento počet palindrómov môže byť veľmi veľký, stačí, ak nájdete jeho zvyšok po delení prvočíslom \(p\).
(Palindróm je reťazec písmen, ktorý prečítame rovnako odpredu aj odzadu, napr. velipsespilev. Prefix reťazca s dĺžkou \(l\) sa skladá z \(l\) písmen na jeho začiatku v nezmenenom poradí.)
Vstup a výstup
Na prvom riadku vstupu je jedno celé číslo \(t\) – počet samostatných testov.
Nasleduje \(t\) riadkov. Každý z nich obsahuje tri celé čísla \(n\), \(k\) a \(p\) popisujúce jeden z testov.
Pre každý test vypíšte jeden riadok a na ňom jedno celé číslo – počet reťazcov s danými vlastnosťami modulo \(p\).
Obmedzenia
Platí \(1 \le t \le 10\) a \(1 \le n, k \le 10^5\). Je garantované že \(p\) je prvočíslo, pre ktoré platí \(10^8 \le p \le 10^9+9\).
Je niekoľko testovacích sád. V niektorých sadách je \(n \le 15\) a \(k \le 6\). V iných je veľké \(k\), ale postupne rastie \(n\); v približne polovici z týchto sád je \(n \le 2000\). Objaví sa aj sada, kde \(k = 2\).
Príklad
Input:
4
1 10 1000000009
2 2 1000000009
4 3 1000000009
34 5 1000000009
Output:
10
2
6
912957714
Pre odovzdávanie sa musíš prihlásiť.