#include <iostream>
#include <cstdio>
#include <queue>
using namespace std;
priority_queue <int> q[200001];
int n,m,type,t,x,y,maxt,k;
int main()
{
    scanf("%d%d",&m,&n);
    for(int i=1;i<=m;i++)
    {
        scanf("%d",&type);
        if (type==2)
        {
            maxt=0;
            for(int j=1;j<=n;j++)
            {
                t=-q[j].top();
                if (t>maxt) {maxt=t;k=j;}
            }
            printf("%d\n",maxt);
            q[k].pop();
            continue;
        }
        scanf("%d%d",&x,&y);
        q[x].push(-y);
    }
	return 0;
}
