potcoave

Time limit: 0.1s Memory limit: 4MB Input: potcoave.in Output: potcoave.outPoints by default: 10p

La atelierul de făcut potcoave lucrează NN muncitori, numerotaţi pentru simplitate de la 11 la NN. Fiecare muncitor a încheiat la angajare un contract în care este specificat numărul de potcoave pe care trebuie să le producă muncitorul în fiecare zi de muncă, respectiv a câta zi muncitorul este liber. Mai exact, muncitorul ii (1iN1 \leq i \leq N) trebuie să producă în fiecare zi de muncă pip_i potcoave, iar fiecare a kik_i-a zi va fi liberă (adică muncitorul ii va fi liber în ziua kik_i, 2ki2k_i, 3ki3k_i, ...). În ziua liberă el nu va veni la atelier, deci nu produce potcoave. Atelierul tocmai a primit o comandă de MM potcoave.

Cerinţă

Scrieţi un program care să determine numărul minim de zile după care comanda poate fi integral livrată.

Date de intrare

Fişierul de intrare potcoave.in conţine pe prima linie numărul natural MM reprezentând numărul de potcoave care trebuie să fie livrate. Pe cea de a doua linie se află numărul natural NN reprezentând numărul de muncitori. Pe următoarele NN linii sunt scrise datele contractuale ale celor NN muncitori. Pe a ii-a linie dintre cele NN se află două numere naturale separate prin spaţiu pi kip_i \ k_i, cu semnificaţia din enunţ (1iN1 \leq i \leq N).

Date de ieşire

Fişierul de ieşire potcoave.out va conţine o singură linie pe care va fi scris numărul minim de zile după pot fi livrate cele MM potcoave din comanda primită.

Restricţii şi precizări

  • 1M10181 \leq M \leq 10^{18}
  • 1N1041 \leq N \leq 10^{4}
  • 1pi10181 \leq p_i \leq 10^{18}, pentru 1iN1 \leq i \leq N
  • 2ki10182 \leq k_i \leq 10^{18}, pentru 1iN1 \leq i \leq N
  • Pentru 1010 puncte, N=1N=1.
  • Pentru alte 1616 puncte, 1<N101 < N \leq 10 și M100 000M \leq 100 \ 000.
  • Pentru alte 1818 puncte, N=2N=2 și M>100 000M>100 \ 000.

Exemplu

potcoave.in

100
3
2 3
3 4
5 7

potcoave.out

13

Explicație

Ziua 11: lucrează toţi cei 33 muncitori şi produc 2+3+5=102+3+5=10 potcoave.
Ziua 22: lucrează toţi cei 33 muncitori şi produc 2+3+5=102+3+5=10 potcoave.
Ziua 33: lucrează muncitorii 22 şi 33 şi produc 3+5=83+5=8 potcoave.
Ziua 44: lucrează muncitorii 11 şi 33 şi produc 2+5=72+5=7 potcoave.
Ziua 55: lucrează toţi cei 33 muncitori şi produc 2+3+5=102+3+5=10 potcoave.
Ziua 66: lucrează muncitorii 22 şi 33 şi produc 3+5=83+5=8 potcoave.
Ziua 77: lucrează muncitorii 11 şi 22 şi produc 2+3=52+3=5 potcoave.
Ziua 88: lucrează muncitorii 11 şi 33 şi produc 2+5=72+5=7 potcoave.
Ziua 99: lucrează muncitorii 22 şi 33 şi produc 3+5=83+5=8 potcoave.
Ziua 1010: lucrează toţi cei 33 muncitori şi produc 2+3+5=102+3+5=10 potcoave.
Ziua 1111: lucrează toţi cei 33 muncitori şi produc 2+3+5=102+3+5=10 potcoave.
Ziua 1212: lucrează doar muncitorul 33 şi produce 55 potcoave.
Ziua 1313: lucrează toţi cei 33 muncitori şi produc 2+3+5=102+3+5=10 potcoave.
După 1313 zile numărul total de potcoave produse este 10+10+8+7+10+8+5+7+8+10+10+5+10=10810+10+8+7+10+8+5+7+8+10+10+5+10=108, suficient pentru a onora comanda.

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