#include <bits/stdc++.h>
using namespace std;

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

