Se consideră un șir A, inițial vid. Se definesc următoarele operații:
1 x– introduce valoareaxîn șirulA2 x– șterge toate aparițiile luixdinA(dacăxnu apare deloc înA, operația nu se execută)3– interogare: care este cea mai mică valoare dinAși de câte ori apare (dacăAeste ș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