class Solution {
public:
int binsearch(vector<vector<int>>& arr, int k){
int l=0,r=arr.size()-1;
if(k>arr[r][0])return -1;
while(l<r){
int mid=l+(r-l)/2;
if(arr[mid][0]<k)l=mid+1;
else
r=mid;
}
return arr[l][1];
}
vector<int> findRightInterval(vector<vector<int>>& intervals) {
vector<vector<int>> help=intervals;
for(int i=0;i<intervals.size();i++){
help[i][1]=i;
}
sort(help.begin(),help.end(),[](vector<int>& a,vector<int>& b){return a[0]<b[0];});
vector<int> ans;
for(int i=0;i<intervals.size();i++){
ans.push_back(binsearch(help,intervals[i][1]));
}
return ans;
}
};