#include #include using namespace std; using i32 = int; using u32 = unsigned int; using i64 = long long; using u64 = unsigned long long; #define FAST_IO \ ios::sync_with_stdio(false); \ cin.tie(0); const i64 INF = 1001001001001001001; using Modint = atcoder::static_modint<998244353>; i64 op(i64 a, i64 b) { return min(a, b); } i64 e() { return INF; } int main() { FAST_IO auto ans = 0LL; int N, Q; cin >> N >> Q; atcoder::segtree segL(N), segR(N); for (int i = 0; i < Q; i++) { int t; cin >> t; if (t == 1) { int x; cin >> x; x--; i64 v = x; v = min(v, segL.prod(0, x + 1) + x); v = min(v, segR.prod(x, N) - x); cout << v << endl; } else if (t == 2) { int x; i64 c; cin >> x >> c; x--; segL.set(x, min(c - x, segL.get(x))); segR.set(x, min(c + x, segR.get(x))); } } }