Laiko ribojimas: 1s

Atminties ribojimas: 64MB

Duomenų failas: lmio_2018_3e2_asm_vyr.in

Rezultatų failas: lmio_2018_3e2_asm_vyr.out

Jei norite pateikti savo sprendimą - prisijunkite.

Metaprogramavimas

Justas labai dažnai dalyvauja programavimo olimpiadose. Kadangi jis labai daug laiko praleidžia spręsdamas uždavinius, Justas užsimanė uždavinių sprendimą automatizuoti. Jis norėtų turėti programą, kuriai galėtų duoti uždavinio testus, ir ta programa jam surastų uždavinio sprendimą. Deja, Justas nežino, kaip tokią programą parašyti. Padėkite jam!

Justas jums duos sąrašą testų, ir jūs turėsite surasti sprendimą, kuris teisingai išspręstų visus tuos testus. Kiekvienas testas susideda iš dviejų skaičių – testo pradinio duomens ir testo rezultato. Visų testų pradiniai duomenys yra skirtingi.

Programavimo kalba, kuria Justas rašo uždavinių sprendimus, yra labai paprasta. Programos turi vieną kintamąjį, kuriame laikomas bet kokio dydžio neneigiamas sveikasis skaičius. Programai pradedant darbą, į šį kintamąjį įrašomas testo pradinis duomuo. Pati programa susideda iš komandų sąrašo:

  • add n - prie kintamojo prideda n. 0\\leqn<10^{18}.
  • multiply n - kintamąjį padaugina iš n. 0\\leq<10^{18}.
  • print - išspausdina kintamojo reikšmę. Reikšmė išspausdinama be nulių priekyje (išskyrus reikšmę 0, kuri išspausdinama kaip „0“). ‘print‘ komanda išspausdina tik skaičių – be jokių tarpų ar naujos eilutės simbolių.

Atkreipkite dėmesį, kad atsakymą galima spausdinti keliomis dalimis. Pavyzdžiui, turime tokią programą:

multiply 2

print

add 5

print

Jei pradinis duomuo būtų 1, ši programa išspausdintų 27. Jei pradinis duomuo būtų 6, išspausdintų 1217.

Justas nenori, kad jo sprendimai viršytų laiko ribojimą, todėl jums reikia surasti mažiausiai komandų turinčią programą, kuri teisingai išsprendžia visus Justo duotus testus.

Pradiniai duomenys

Pirmoje eilutėje yra skaičius N – uždaviniui skirtų testų skaičius. Kitose N eilučių yra po du skaičius a_i ir b_ii-tojo testo pradinis duomuo ir reikiamas rezultatas. Visos a_i reikšmės skirtingos

Rezultatai

Pirmoje eilutėje išveskite vieną skaičių K – trumpiausią tinkamą programą sudarančių komandų skaičių. Tolesnėse K eilučių išspausdinkite programos komandas – po vieną komandą per eilutę. Jei yra kelios tokios programos, išveskite bet kurią.

Jei programa, kuri galėtų išspręsti visus testus, neegzistuoja, išveskite −1.

Pavyzdžiai

Pradiniai duomenys Rezultatai Paaiškinimas
3
2 12
3 18
5 30
2
multiply 6
print
Visuose duotuose testuose atsakymas yra 6 kartus didesnis nei pradinis duomuo, todėl užtenka padauginti iš 6 ir išspausdinti.
2
2 47
43 8689
4
multiply 2
print
add 3
print
Pirmame tekste programa skaičių 47 išspausdina dalimis „4“ ir „7“.  Antrame teste 8689 išspausdinamas dalimis „86“ ir „89“.
2
1 3
2 2
-1
Programa, kuri gavusi 1 išspausdintų 3, o gavusi 2 išspausdintų 2, neegzistuoja.

Ribojimai

1\\leqN\\leq50

0\\leqa_i,b_i<10^{18}