Operazioni modulo m

Proseguendo le ricerche sulle schede grafiche, il team si trova ora nella situazione di dover eseguire più calcoli per ogni coppia di numeri. Stanno ancora testando il loro codice e ti chiedono di scrivere un programma che verifichi le operazioni di addizione, sottrazione e moltiplicazione di numeri modulo m.

Date due liste di interi e , ti viene richiesto di calcolare:

Poiché risulta più veloce eseguire calcoli analoghi su una GPU, ti viene chiesto di stampare prima tutti i risultati dell’addizione, poi quelli della sottrazione e infine quelli della moltiplicazione.

Input

La prima riga dell’input contiene due interi n (1 ≤ n ≤ 100 000) e m (1 ≤ m ≤ ).

La seconda riga contiene n interi separati da uno spazio ().

La riga successiva contiene n interi separati da uno spazio ().

Output

La prima riga dell’output deve contenere tutte le somme separate da uno spazio .

La seconda riga deve contenere tutte le sottrazioni separate da uno spazio .

L’ultima riga deve raccogliere tutte le moltiplicazioni separate da uno spazio .

Esempi

Input

Output

3 3 1 2 1 3 4 1

1 0 2 1 1 0 0 2 1

Spiegazione

  1. Addizione (prima riga)

  2. Sottrazione (seconda riga)

  3. Moltiplicazione (terza riga)

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 3 MB

To check your solution you need to sign in
Sign in to continue