Задачі
Кількість різних підрядків
Кількість різних підрядків
Вам задано рядок \textbf{s = s_1s_2... s_n}, довжини \textbf{n}. Знайдіть кількість його різних підрядків.
Рядок генерується незвичним способом. А саме, вам задано просте число \textbf{p} (\textbf{2} ≤ \textbf{p} ≤ \textbf{10^9}), символ \textbf{s}_i дорівнює букві під номером \textbf{(((p^i) mod (10^9+7)) mod 26)+1} у англійському алфавіті. Вважайте, що регістр усіх букв рядка однаковий.
Операція \textbf{a mod b} позначає взяття залишку при діленні числа \textbf{a} на число \textbf{b}.
\InputFile
У першому рядку задано два цілих числа \textbf{n} та \textbf{p} (\textbf{1} ≤ \textbf{n} ≤ \textbf{10^5}, \textbf{2} ≤ \textbf{p} ≤ \textbf{10^9}). Число \textbf{p} - просте.
\OutputFile
Виведіть єдине ціле число --- кількість різних підрядків рядка \textbf{s}.
Вхідні дані #1
5 2
Вихідні дані #1
15