Se consideră un șir A
, inițial vid. Se definesc următoarele operații:
1 x
– introduce valoareax
în șirulA
2 x
– șterge toate aparițiile luix
dinA
(dacăx
nu apare deloc înA
, operația nu se execută)3
– interogare: care este cea mai mică valoare dinA
și de câte ori apare (dacăA
este șir vid, se va afișa doar valoarea-1
)
Cerința
Dându-se N
operații, trebuie să afișați răspunsul la fiecare operație de tip 3
.
Date de intrare
Fișierul de intrare mset.in
conține pe prima linie N
. Pe următoarele N
linii sunt date cele N
operații.
Date de ieșire
În fișierul de ieșire mset.out
se vor afișa pe câte o linie răspunsurile la operațiile de tip 3
.
Restricții și precizări
1 ≤ N ≤ 200 000
- Va exista cel puțin o operație de tip
3
- Valorile care se introduc în mulțime sunt numere naturale mai mici decât
2 000 000 000
Exemplu:
mset.in
14 3 1 55 1 55 3 1 40 3 1 7 1 7 3 2 7 1 50 3 2 40 3
mset.out
-1 55 2 40 1 7 2 40 1 50 1