#include <cstdio>
#include <iostream>
#include <queue>
#include <string>

using namespace std;

struct Complex{
    int real;
    int imag;
    Complex(int a, int b):real(a),imag(b){}
    bool operator< (Complex c) const
    {
        return real*real +imag*imag <c.real*c.real+c.imag*c.imag;
    }};

int main(){
    int n;
    while(scanf("%d",&n)!=EOF){
        priority_queue<Complex> myPriorityQueue;
        while(n--){
            string str;
            cin>>str;
            if(str=="Pop"){
                if(myPriorityQueue.empty()){
                    printf("empty\n");
                }else{
                    Complex current = myPriorityQueue.top();
                    myPriorityQueue.pop();
                    printf("%d+i%d\n",current.real,current.imag);
                    printf("SIZE = %d\n",myPriorityQueue.size());
                }
            }else{
                int a,b;
                scanf("%d+i%d",&a,&b);
                myPriorityQueue.push(Complex(a,b));
                printf("SIZE = %d\n",myPriorityQueue.size());
            }

        }
    }
    return 0;
}