#include "bits/stdc++.h"
using namespace std;
#define int long long
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
#define ss second
#define ff first
#define pb push_back 
using ull = unsigned long long;
 
void solve(){
  int n, q; cin >> n >> q;
  vector<int> d(n), c(n);
  vector<vector<int>> v(n), id(n);
  for(int i = 0; i < n; i++){
    cin >> d[i] >> c[i];
    v[i].pb(c[i]);
    id[i].pb(i);
    for(int j = 0; j < i; j++){
      if(d[id[j].back()] < d[i]){
        v[j].pb(c[i]);
        int k = v[j].size();
        v[j][k - 1] += v[j][k - 2];
        id[j].pb(i);
      }
    }
  }
  
  while(q--){
    int i, t; cin >> i >> t;
    i--;
    auto it = lower_bound(all(v[i]), t);
    int ans = 0;
    if(it != v[i].end()){
      int x = it - v[i].begin();
      ans = id[i][x] + 1;
    }
    cout << ans << endl;
  }
}
signed main() {
  cin.tie(nullptr)->sync_with_stdio(false);
  int t = 1; //cin >> t;
  while(t--){
    solve();
    cout << endl;
  }
  return 0;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |