#include<bits/stdc++.h>

using namespace std;

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

