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