CF BUDDY
← Problems·

852F · Product transformation

2200 · combinatorics, math, number theory

Problem: Consider an array A with N elements, all being the same integer a.

Define the product transformation as a simultaneous update Ai = Ai·Ai + 1, that is multiplying each element to the element right to it for i(1,2,...,N1)i \in (1, 2,..., N-1), with the last number AN remaining the same. For example, if we start with an array A with a = 2 and N = 4, then after one product transformation A = [4, 4, 4, 2], and after two product transformations A = [16, 16, 8, 2].

Your simple task is to calculate the array A after M product transformations. Since the numbers can get quite big you should output them modulo Q.

Input Format: The first and only line of input contains four integers N, M, a, Q (7 ≤ Q ≤ 109 + 123, 2 ≤ a ≤ 106 + 123, 1M,N<ϕ(a,Q)106+1231 \leq M, N < \phi(a, Q) \leq 10^6 + 123, ϕ(a,Q)\phi(a,Q) is prime), where ϕ(a,Q)\phi(a,Q) is the multiplicative order of the integer a modulo Q, see notes for definition.

Output Format: You should output the array A from left to right.

Note: The multiplicative order of a number a modulo Q ϕ(a,Q)\phi(a,Q), is the smallest natural number x such that ax mod Q = 1. For example, ϕ(2,7)=3\phi(2,7)=3.

Sample Cases

Case 1

Input

2 2 2 7

Output

1 2

Similar problems

00:00:00
Loading editor…
Welcome! I'm your coding tutor for this problem. Use the chips below to reveal stored hints or get AI feedback on your code. I'll guide you step by step — never giving away the solution.

Sign in to unlock AI tutor feedback