FIBOFUN - Fun with Fibonacci Series

Fibonacci series is a series in which every element is sum of previous 2 elements.

The first 2 elements are 0, 1 and the series goes like 0, 1, 1, 2, 3, 5, 8, 13...

What if you were given 2 random numbers as the starting of the series and you follow the same rule as the Fibonacci rule?

For example, if you were given 2 and 2 .. the series would become:

2 2 4 6 10 16 26...

Now your task is simple...

You will be given 2 numbers a and b - the first and second term of the series.

You need to calculate the sum of first n numbers of the series so formed.

Since the numbers can be big you need to print the result mod some number 'M' provided in the input.

Input

The first line will have single number 't' - number of test cases.

Each test case will have 4 numbers a, b, n and M.

a - first number of the series.

b - second number of the series.

n - calculate the sum for n terms.

M - give the result mod M.

Output

single number for each case - sum of n terms mod M.

Example

Input:
2
2 2 10 21
1 3 10 21

Output:
13
4

Explanation

The first case series is 2 2 4 6 10 16 26 42 68 110, sum is 286, result is 286 % 21 = 13.

Constraints

Number of test cases ≤ 100.
0 ≤ a, b, m ≤ 108.
1 ≤ n ≤ 108.


Added by:Devil D
Date:2012-03-15
Time limit:1s
Source limit:10000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ASM64
Resource:Own

hide comments
2012-08-28 08:29:04 Sidharth Gupta
This is not a tutorial problem! There are many problems out there which are related to one another or are special case of some other problem..
2012-08-28 08:29:04 david_8k
@Trichromatic, I think you should move back the problem, this is unfair because you're moving it by your own measures, please, bring it back.
2012-08-28 08:29:04 Nnavneetsinha
This is definitely not a tutorial problem. please bring it back to the classical section.
2012-08-28 08:29:04 [Trichromatic] XilinX
This one is the special case of my prob. SPP. Moved to tutorial.
2012-08-28 08:29:04 Sachin Railhan
What is the answer when m=0?
I think m shouldn't be zero.


-----
m is not 0

Last edit: 2012-05-04 13:19:30
2012-08-28 08:29:04 Surya kiran
please post a test case
2012-08-28 08:29:04 hemezh
Got AC. I still don't know why my python code didn't work.



Last edit: 2012-04-12 13:47:37
2012-08-28 08:29:04 ! include(L.ppt)
Whoops Got AC....:), njoyed solving this...:)

Last edit: 2012-04-01 14:24:43
2012-08-28 08:29:04 Xx100m
@ Devil D: Despite multiple submissions (last submission id: 6756464) i am getting WA. Can you please tell me where my code is failing?
2012-08-28 08:29:04 Prakhar Jain
m is never 0..!!!

Last edit: 2012-03-30 11:46:23
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.