criptare

Zaharel si Bronzarel se intrec adesea in criptare. De data aceasta, Zaharel a criptat un sir de N numere naturale a0, a1, ...,aN-1 astfel: a luat un numar natural M si a construit urmatorul sir: bi = ai+a(i+1) mod N+a(i+2) mod N+...+a(i+M-1) mod N; apoi, l-a intrebat pe Bronzarel daca poate sa determine sirul initial a0, a1, ..., aN-1 daca i se da acest nou sir, precum si numarul M.

Cerinta

Scrieti un program care il ajuta pe Bronzarel.

Date de intrare

Pe prima linie a fisierului de intrare criptare.in sunt scrise cele doua numere naturale N M, separate printr-un singur spatiu. Pe urmatoarea linie sunt scrise N numere naturale separate printr-un singur spatiu, reprezentand sirul b0, b1, ..., bN-1.

Date de iesire

Fisierul de iesire criptare.out va contine o singura linie pe care vor fi scrise N numere naturale separate prin cate un singur spatiu, reprezentand sirul a0, a1, ..., aN-1. Desi pot exista mai multe solutii, Bronzarel stie ca sirul criptat de Zaharel este cel minim lexicografic dintre toate solutiile posibile.

Restrictii

1 <= M, N <= 50000
0 <= bi <= 109

Prin a mod b se intelege restul impartirii lui a la b
Se garanteaza existenta a cel putin unei solutii.
Sirul a0, a1, ..., aN-1 trebuie sa contina numere naturale (nu neaparat nenule).

Exemple

criptare.in

criptare.out criptare.in

criptare.out

3 2
3 5 4
1 2 3 6 4
8 13 11 13 17 10

2 5 0 1 7 3

Timp maxim de executie/test: 0.1 secunde

Mircea Paşoi
Universitatea Bucuresti, Facultatea de Matematica si Informatica
bogdanpasoi@yahoo.co