#include long constexpr INF64 = 1L << 60; int main() { int n, q; std::cin >> n >> q; std::set> ps { { 0, 0 } }; for(auto _ : std::views::iota(0, q)) { std::cerr << _ << " : " << ps.size() << "\n"; int t, x; std::cin >> t >> x; --t, --x; auto get = [&](auto x) { long res = INF64; { auto itr = ps.lower_bound({ x, -INF64 }); if(itr != ps.end()) { res = std::min(res, itr->second + std::abs(itr->first - x)); } } { auto itr = ps.upper_bound({ x, -INF64 }); if(itr != ps.begin()) { --itr; res = std::min(res, itr->second + std::abs(itr->first - x)); } } return res; }; if(t == 0) { std::cout << get(x) << "\n"; } if(t == 1) { long c; std::cin >> c; if(get(x) <= c) continue; { auto itr = ps.lower_bound({ x, -INF64 }); while(itr != ps.end()) { if(c + std::abs(itr->first - x) <= itr->second) itr = ps.erase(itr); else break; } } { auto itr = ps.upper_bound({ x, -INF64 }); while(itr != ps.begin()) { --itr; if(c + std::abs(itr->first - x) <= itr->second) itr = ps.erase(itr); else break; } } ps.emplace(x, c); } } }