abx

Time limit: 0.6s Memory limit: 32MB Input: abx.in Output: abx.outPoints by default: 10p

Un număr natural nn se numește putere dacă există două numere naturale aa, bb, a1a \geq 1, b2b \geq 2 astfel încât n=abn = a^b. De exemplu, numerele 3232, 169169, 11 sunt puteri (32=2532=2^5, 169=132169=13^2, 1=121=1^2), iar 7272, 20002000 și 3131 nu sunt puteri.
Se citesc numerele naturale NN, MM și un șir de NN numere naturale x1,x2,,xNx_1, x_2, \dots, x_N din intervalul [1,M][1,M].

Cerință

Pentru fiecare din cele NN numere xix_i determinați câte un număr natural rir_i din intervalul [1,M][1,M], cu proprietatea că rir_i este o putere și pentru orice altă putere pp din intervalul [1,M][1,M] este îndeplinită condiția xirixip|x_i – r_i| \leq |x_i – p|, unde x|x| reprezintă valoarea absolută a lui xx (modulul).
Dacă există două puteri egal depărtate de xix_i se va alege puterea cea mai mică. De exemplu pentru numărul 2626, dintre puterile 2525 și 2727 va fi ales numărul 2525.

Date de intrare

Fișierul de intrare abx.in conține pe prima linie două numere NN și MM, iar pe fiecare dintre următoarele NN linii se găsește câte un număr natural xix_i (1iN1 \leq i \leq N), cu semnificația de mai sus.
Numerele aflate pe aceeași linie a fișierului sunt separate prin câte un spațiu.

Date de ieșire

Fișierul de ieșire abx.out va conține NN linii, pe fiecare linie ii (1iN1 \leq i \leq N) aflându-se numărul natural rir_i cu semnificația din enunț.

Restricții și precizări

  • 1N5 0001 \leq N \leq 5\ 000
  • 10M101810 \leq M \leq 10^{18}
  • Pentru teste valorând 40 de puncte, M5 000M \leq 5\ 000.
  • Pentru teste valorând 70 de puncte, M109M \leq 10^9.

Exemplu

abx.in

8 1000
345
99
999
500
123
124
99
256

abx.out

343
100
1000
512
121
125
100
256

Explicație

343=73343 = 7^3
100=102100 = 10^2
1 000=1031\ 000 = 10^3
512=29512 = 2^9
121=112121 = 11^2
125=53125 = 5^3
100=102100 = 10^2
256=28256 = 2^8

Log in or sign up to be able to send submissions!