Quadratic Equations

All submissions for this problem are available.
A tutorial for this problem is now available on our blog. Click here to read it.
Knowing Johnny's mathematical talent, our teacher has prepared a new interesting problem for him, hoping he will enjoy solving it. The problem description is given below.
"There is a rectangular room of length l and width w (l and w are integers). The length and width of the room fulfill the relation l=Aw+B, where A and B are given integer constants. The room is divided into square cells of unit dimensions. You have observed that, after adding an integer C to the number of cells in the room, the number of cells becomes divisible by the prime number P. Find all the possible values of the width of the room."
Input
The first line contains t, the number of test cases (about 10000). Then t test cases follow. Each test case is given in one line containing 4 integers A, B, C and P (2 ≤ P < 10^{6}, 0 < A < P, 0 ≤ B,C < P).
P is always a prime number.
Output
For each test case, write the result in one line. The first number K is the number of solutions. Then K numbers X_{1}, X_{2}, ...,X_{K} follow (0 ≤ X_{i} < P) in increasing order, which are the solutions to the corresponding problems.
Example
Input: 2 1 1 0 2 1 2 2 3 Output: 2 0 1 0
Author:  admin 
Tags  admin 
Date Added:  5062009 
Time Limit:  0.521739 sec 
Source Limit:  50000 Bytes 
Languages:  C, CPP14, JAVA, PYTH, PYTH 3.6, PYPY, CS2, PAS fpc, PAS gpc, RUBY, PHP, GO, NODEJS, HASK, rust, SCALA, swift, D, PERL, FORT, WSPC, ADA, CAML, ICK, BF, ASM, CLPS, PRLG, ICON, SCM qobi, PIKE, ST, NICE, LUA, BASH, NEM, LISP sbcl, LISP clisp, SCM guile, JS, SQL, kotlin, TEXT, SCM chicken, PYP3, CLOJ, R, COB, FS 
Comments
 Please login at the top to post a comment.
SUCCESSFUL SUBMISSIONS
Fetching successful submissions
HELP
If you are still having problems, see a sample solution here. 