#include <bits/stdc++.h> using namespace std; #define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); #define endl "\n" #define int long long const int N = 1e9; map<int, int> bit; void update(int idx, int val) { while(idx <= N) { bit[idx] += val; idx += idx & -idx; } } int pref(int idx) { int ans = 0; while(idx > 0) { ans += bit[idx]; idx -= idx & -idx; } return ans; } int32_t main() { IOS; int prev = 0; int q, m1, m2; cin >> q >> m1 >> m2; while(q--) { int type, a, b; cin >> type; if(type == 1) { cin >> a >> b; int x = (a + prev) % m1 + 1; int y = (b + prev) % m2 + 1; int oldVal = pref(x) - pref(x - 1); int newVal = y; int diff = newVal - oldVal; update(x, diff); } else { cin >> a; int x = (a + prev) % m1 + 1; prev = pref(x); cout << pref(x) << endl; } } return 0; }