표트르가 프로그래밍 대회 결승전을 향해 자동차로 이동하고 있습니다. 이동 경로의 대부분은 새로 지어진 고속도로를 달리는 구간입니다. 그는 s 킬로미터 지점에서 고속도로에 진입해 k 킬로미터 지점에서 빠져나옵니다(s<k). 그의 자동차는 최고 속도가 시속 vmax 킬로미터이며, 속도를 즉시 바꿀 수 있습니다.
표트르는 빠르게 달리는 것을 좋아합니다. 속도 v로 x 킬로미터를 달리면 만족도가 x⋅v만큼 늘어납니다. 그는 s 킬로미터 지점부터 k 킬로미터 지점까지 달리는 동안 총 만족도가 최대가 되도록 하고 싶습니다.
고속도로에는 속도 제한이 n개 있습니다. i번째 속도 제한은 ai 킬로미터부터 bi 킬로미터까지 적용되며, 이 구간에서는 시속 vi 킬로미터보다 빠르게 달릴 수 없습니다. 한 구간에 여러 속도 제한이 겹쳐 적용되면 그 모두를 동시에 지켜야 합니다(즉, 가장 낮은 제한을 따릅니다).
표트르의 친구들이 그가 도착하기 전에 속도 제한 하나를 조용히 없애 주기로 했습니다. 표트르는 자신이 얻을 수 있는 최대 만족도가 가장 커지도록 어떤 속도 제한을 없앨지 고르고 싶습니다. 없애야 할 속도 제한을 구하세요.
첫째 줄에 네 정수 n, s, k, vmax가 공백 하나로 구분되어 주어집니다. 여기서 1≤n≤100000, 0≤s<k≤1000000, 1≤vmax≤300입니다.
다음 n개의 줄에는 각각 속도 제한 하나가 주어집니다. (i+1)번째 줄에는 세 정수 ai, bi, vi가 공백 하나로 구분되어 주어지며, 0≤ai<bi≤1000000, 1≤vi≤400입니다. 이는 ai 킬로미터부터 bi 킬로미터까지 속도가 시속 vi 킬로미터를 넘을 수 없다는 뜻입니다.
표트르의 만족도가 최대가 되도록 없애야 할 속도 제한의 번호를 정수 하나로 출력하세요. 속도 제한은 입력에 나타난 순서대로 1번부터 n번까지 번호가 매겨집니다. 여러 속도 제한 중 어느 하나를 없애도 만족도의 최댓값이 같다면, 그중 가장 작은 번호를 출력하세요.