Ardıcıllıq#4957

Ardıcıllıq

3 saniyə
64 meqabayt
Orta

Məşhur rekursiv düstur f ardıcıllığı üçün aşağıdakı ifadə verilir:

f(n) = 1 + f(1)g(1) + f(2)g(2) + ... + f(n-1)g(n-1),

burada g ardıcıllığı isə bu rekursiv düsturla təyin olunur:

g(n) = 1 + 2g(1) + 2g(2) + 2g(3) + ... + 2g(n-1) - g(n-1)g(n-1).

Əlavə olaraq, aşağıdakı başlanğıc şərtlər verilir: f(1) = 1, g(1) = 1.

Sizin vəzifəniz f(n)-i p modulunda hesablamaqdır.

Giriş

Giriş faylında bir neçə test nümunəsi var. Hər bir test nümunəsi ayrı bir sətirdə iki ədəd ehtiva edir: n (1 ≤ n ≤ 10000) və p (2 ≤ p ≤ 2·10^9). n=p=0 olan test nümunəsi giriş faylının sonunu göstərir və işlənməməlidir. Bir faylda testlərin sayı 5000-i keçmir.

Çıxış

Çıxış faylında hər bir test üçün ayrı bir sətirdə tək bir ədəd - f(n) modul p ilə verilməlidir.

Nümunələr

Nümunə 1

Loading
Loading