#include #include using namespace std; int op(int lhs, int rhs){return max(lhs, rhs);} int op2(int lhs, int rhs){return min(lhs, rhs);} constexpr int e(){return 0;} constexpr int e2(){return 1 << 30;} int main(){ ios::sync_with_stdio(false); cin.tie(0); int N, Q, cmd, x, c; cin >> N >> Q; vector tmp(N); for(int i = 0; i < N; i++) tmp[i] = 2 * i; atcoder::segtree seg(N); atcoder::segtree seg2(tmp); while(Q--){ cin >> cmd >> x; x--; if(cmd == 1){ cout << min(x - seg.prod(0, x), seg2.prod(x, N) - x) << '\n'; }else{ cin >> c; seg.set(x, max(seg.get(x), x - c)); seg2.set(x, min(seg2.get(x), x + c)); } } }