Implementazione di un Heap Personalizzato

Partendo da un heap inizialmente vuoto, si devono eseguire q operazioni (query). Esistono tre tipi di operazioni:

  1. add x – inserisce x nell'heap

  2. pop – rimuove la radice dell'heap

  3. max – visualizza l'elemento massimo dell'heap

Input

La prima riga dell’input contiene un singolo intero q (1 ≤ q ≤ 10^5).

Le successive q righe contengono le operazioni, ciascuna su una riga separata. È garantito che, per tutte le istruzioni add, il valore di x non superi 10^9 in valore assoluto. È inoltre garantito che tutte le istruzioni siano valide e che non venga mai richiesto un pop se l’heap è vuoto.

Output

Il programma deve stampare i risultati corrispondenti a tutte le istruzioni max, ognuno su una nuova riga.

Examples

Input

Input

9 add 1 add 2 max add -3 add 4 max add -2 pop max

9 add 1 add 2 max add -3 add 4 max add -2 pop max

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue