#include <iostream>
#include <algorithm>
#include <limits.h>
 
using namespace std;
typedef pair<int,int> P;
P seg[1111111];
int n;
void update(int a,int b);
P pamax(P a,P b);
int b;
int main(){
  int r,l;
  int team[100000]={0};
   
  cin >> n >> r >> l;
  b=1;
  while(b<n)b*=2;
  for(int i=0; i<n; i++) {
    update(i,0);
  }
  int now=0,top=0;
  
  for (int i=0;i<r;i++){
    int d,t,x;
    cin >> d >> t >> x;
    team[top]+=t-now;
    update(d-1,x);
    top=seg[0].second-1;
    now=t;
  }
  team[top]+=l-now;
  
  int ans = 0;
  for (int i=1;i<n;i++){
    if(team[ans]<team[i]) ans=i;
  }
  cout << ans+1 << endl;
}
 
 
 
void update(int k, int x){
  int id = k + 1;
  k += b - 1;
  seg[k].first += x;
  seg[k].second = id;
   
  while (k>0){
    k = (k - 1) / 2;
    if (seg[k * 2 + 1].first > seg[k * 2 + 2].first){
      seg[k] = seg[k * 2 + 1];
    }
    else if (seg[k * 2 + 1].first < seg[k * 2 + 2].first){
      seg[k] = seg[k * 2 + 2];
    }
    else {
      seg[k] = seg[k * 2 + 1];
    }
  }
  /*while(k>0){
    k=(k-1)/2;
    seg[k]=pamax(seg[k*2+1],seg[k*2+2]);
    }*/
}

P pamax(P a,P b){
  int x,y;
  x=a.second;
  y=b.second;
  if(x<y)return b;
  else return a;
}
  