description: Kawasiro Nitori is excellent in engineering. Thus she has been appointed to help maintain trains.
  
  There are n models of trains, and Nitori's department will only have at most one train of each model at any moment. In the beginning, there are no trains, at each of the following m days, one train will be added, or one train will be removed. When a train of model i is added at day t, it works for x_i days (day t inclusive), then it is in maintenance for y_i days, then in work for x_i days again, and so on until it is removed.
  
  In order to make management easier, Nitori wants you to help her calculate how many trains are in maintenance in each day.
  
  On a day a train is removed, it is not counted as in maintenance.
  
  Input
  
  The first line contains two integers n, m (1 ≤ n,m ≤ 2 ⋅ 10^5).
  
  The i-th of the next n lines contains two integers x_i,y_i (1 ≤ x_i,y_i ≤ 10^9).
  
  Each of the next m lines contains two integers op, k (1 ≤ k ≤ n, op = 1 or op = 2). If op=1, it means this day's a train of model k is added, otherwise the train of model k is removed. It is guaranteed that when a train of model x is added, there is no train of the same model in the department, and when a train of model x is removed, there is such a train in the department.
  
  Output
  
  Print m lines, The i-th of these lines contains one integers, denoting the number of trains in maintenance in the i-th day.
  
  Examples
  
  Input
  
  
  3 4
  10 15
  12 10
  1 1
  1 3
  1 1
  2 1
  2 3
  
  
  Output
  
  
  0
  1
  0
  0
  
  
  Input
  
  
  5 4
  1 1
  10000000 100000000
  998244353 1
  2 1
  1 2
  1 5
  2 5
  1 5
  1 1
  
  
  Output
  
  
  0
  0
  0
  1
  
  Note
  
  Consider the first example:
  
  The first day: Nitori adds a train of model 3. Only a train of model 3 is running and no train is in maintenance.
  
  The second day: Nitori adds a train of model 1. A train of model 1 is running and a train of model 3 is in maintenance.
  
  The third day: Nitori removes a train of model 1. The situation is the same as the first day.
  
  The fourth day: Nitori removes a train of model 3. There are no trains at all.
solution: #include <bits/stdc++.h>
  using namespace std;
  int kol[600500], op[600500], k[600500], r[600500];
  vector<int> vr[600500];
  int skok[450][450], dobr[600500];
  int BL = 450;
  int main() {
    ios_base::sync_with_stdio(0);
    istream::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int n, m;
    cin >> n >> m;
    int x[n], y[n];
    for (int i = 0; i < n; i++) cin >> x[i] >> y[i];
    int ans = 0, all = 0;
    for (int i = 0; i < m; i++) {
      cin >> op[i] >> k[i];
      k[i]--;
      if (int(vr[k[i]].size())) r[vr[k[i]].back()] = i;
      vr[k[i]].push_back(i);
    }
    for (int i = 0; i < m; i++)
      if (r[i] == 0) r[i] = m;
    for (int i = 0; i < m; i++) {
      int j = k[i];
      if (op[i] == 1) {
        all++;
        if (x[j] + y[j] < BL) {
          dobr[j] = i;
          int len = x[j] + y[j];
          for (int t = 0; t < x[j]; t++) {
            int ps = (t + i) % len;
            skok[len][ps]++;
          }
        } else {
          int ps = i;
          while (1) {
            kol[ps]++;
            ps += x[j];
            if (ps >= r[i]) {
              kol[r[i]]--;
              break;
            }
            kol[ps]--;
            ps += y[j];
            if (ps > r[i]) break;
          }
        }
      } else {
        all--;
        int pt = dobr[j];
        int len = x[j] + y[j];
        if (len < BL)
          for (int t = 0; t < x[j]; t++) {
            int ps = (t + pt) % len;
            skok[len][ps]--;
          }
      }
      int sum = 0;
      for (int u = 2; u < BL; u++) sum += skok[u][i % u];
      ans += kol[i];
      cout << all - (ans + sum) << '\n';
    }
  }
  