#include <iostream>
#include <queue>
using namespace std;
int main(){

  int n,q;
  cin>>n>>q;
  priority_queue <int> a[n];

  for(int i=0;i<q;i++){
    int n,t;
    cin>>n>>t;
    if(!n){
      int x;
      cin>>x;
      a[t].push(x);
    }
    else if(n==1 && !a[t].empty()) cout<<a[t].top()<<endl;
    else if(!a[t].empty()) a[t].pop();
  }

  return 0;

}

