#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;
}