#include "bits/stdc++.h" using namespace std; #define DEBUG(x) cout<<#x<<": "< #define vl vector #define vii vector< vector > #define vll vector< vector > #define vs vector #define pii pair #define pis pair #define psi pair #define pll pair #define fi first #define se second #define rep(i,n) for(int i=0;i<(int)(n);i++) #define rep1(i,n) for(int i=1;i<=(int)(n);i++) #define all(c) c.begin(),c.end() const int inf = 1000000001; const ll INF = 2e18; const ll MOD = 1000000007; //const ll mod = 1000000009; const double pi = 3.14159265358979323846; #define Sp(p) cout<> n >> px >> py; vector c(n); rep(i, n) { cin >> c[i].first; if (c[i].first != 3) { cin >> c[i].second; } } vector ans(n); pll dxdy = pll(0,0); int cnt = 0; for (int i = n - 1; i >= 0; i--) { if (c[i].first == 1) { if (cnt == 0) { dxdy.first += c[i].second; } else if (cnt == 1) { dxdy.second -= c[i].second; } else if (cnt == 2) { dxdy.first -= c[i].second; } else if (cnt == 3) { dxdy.second += c[i].second; } } else if (c[i].first == 2) { if (cnt == 1) { dxdy.first += c[i].second; } else if (cnt == 2) { dxdy.second -= c[i].second; } else if (cnt == 3) { dxdy.first -= c[i].second; } else if (cnt == 0) { dxdy.second += c[i].second; } } else { int dx = dxdy.first, dy = dxdy.second; dxdy.first = dy; dxdy.second = -dx; cnt++; cnt %= 4; } int nowx, nowy; if (cnt == 0) { nowx = px; nowy = py; } else if (cnt == 1) { nowx = py; nowy = -px; } else if (cnt == 2) { nowx = -px; nowy = -py; } else if (cnt == 3) { nowx = -py; nowy = px; } ans[i] = pll(nowx + dxdy.first, nowy + dxdy.second); } rep(i, n) { cout << ans[i].first << " " << ans[i].second << endl; } }