Strong-box
Memory limit: 32 MB
ByteGuy owns a strong-box protected with a lock.
This lock has knobs. Each knob can be
situated in one of possible positions.
ByteGuy has not used his strong-box for a long time now, so he has
forgotten the configuration of knobs which opens the strong-box.
He went to the company producing locks, where he learned about
construction of the lock. It consists of knobs and the same number of
bolts. All of them (both bolts and knobs) can be
in one of allowed positions numbered from to .
The lock opens, when all of the bolts are set to the position .
Turning -th knob by one position (from position to , from to , , from to ,
from to ) causes, that -th bolt rotates by positions (from position
to ). The manufacturer of locks helped ByteGuy and gave him a modern 3D-scaner, which allowed to check the configuration of the bolts hidden inside a strong-box.
Locks manufactured for strong-boxes are of high quality and there is only one configuration of knobs which opens the lock.
Task
Write a program, which:
- reads the description of a lock in ByteGuys's strong-box,
- computes the configuration of knobs which opens the lock,
- writes the result to the standard output.
Input
The first line contains two integers - the number of knobs,
and the prime number - the number of possible positions of knobs, .
The following line contains integers in the range
- positions, in which successive knobs are located.
The third line contains integers from the range - positions of consecutive bolts of ByteGuy's strong-box.
Following lines contain descriptions of consecutive knobs -
-th of these lines contains exactly integers -
, , , , .
Output
The only line of output should contain integers from the range , separated with
single spaces - the configuration of knobs which opens the lock.
Example
For the input data:
2 3
1 1
2 2
1 0
0 1
the correct result is:
2 2
Task author: Piotr Stanczyk.