//踩坑
//1. 比较函数,多输入一个*,看来检查代码需要模块化检查
//2. 读懂题目,只要输入一次  n  !  后面都是指令
//3.
#include<cstdio>
#include <queue>
#include<string>
using namespace std;
struct Comeplex{           //重构用到的类   a+bi
    int re;
    int im;
};

bool operator <   (Comeplex left, Comeplex right){

    return left.re*left.re + left.im*left.im < right.im*right.im + right.re*right.re ;
}

int main() {

    int n;

scanf("%d",&n);
priority_queue<Comeplex> quq;        //大跟堆,怎么大? 重构函数  give "<" 比较复数!    
    
for(int i=0;i<n;i++){
        char str1[10];
        scanf("%s",str1);
        string str11 = str1;
       

        //*********弹出
        if(str11=="Pop"){                   //****操纵1:弹出, 1 空不谈,2 不空的弹出
            if(quq.empty()){                //队列空    quq.empty()
                printf("empty\n");
            }
            else{
                printf("%d+i%d\n",quq.top().re,quq.top().im);
                quq.pop();
                printf("SIZE = %d\n", quq.size());
            }
        }
       
       //*********插入操作
        else if(str11=="Insert"){           //quq.push()  插入操作
           int re;
           int im;
           scanf("%d+i%d",&re,&im); //特别的读入方式
           Comeplex a;
           a.im=im;
           a.re=re;
           quq.push(a);
           printf("SIZE = %d\n", quq.size());
        }
    }
 }