#include<bits/stdc++.h>

using namespace std;

int main()
{
    int n,q;
    cin>>n>>q;
    vector < priority_queue <int> > a(n);
    while(q--)
    {
        int t,b;
        cin>>t>>b;
        if(t==0)
        {
            int x;
            cin>>x;
            a[b].emplace(x);
        }
        if(t==1)
        {
            if(!a[b].empty())
            {
                cout<<a[b].top()<<endl;
            }
        }
        if(t==2)
        {
            if(!a[b].empty())
                a[b].pop();
        }
  }
  return 0;
}


