/* -*- coding: utf-8 -*- * * 674.cc: No.674 n連勤 - yukicoder */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /* constant */ /* typedef */ typedef long long ll; typedef pair pll; typedef set spll; /* global variables */ spll rs; /* subroutines */ inline void setmin(ll &a, ll b) { if (a > b) a = b; } inline void setmax(ll &a, ll b) { if (a < b) a = b; } /* main */ int main() { ll d; int q; scanf("%lld%d", &d, &q); ll maxl = 0; while (q--) { ll a, b; scanf("%lld%lld", &a, &b); b++; pll qr(a, b); spll::iterator sit = rs.lower_bound(qr); if (sit != rs.begin()) sit--; while (sit != rs.end() && sit->first <= qr.second) { ll ai = sit->first, bi = sit->second; spll::iterator eit = sit++; if (qr.first <= bi) { setmin(qr.first, ai); setmax(qr.second, bi); rs.erase(eit); } } rs.insert(qr); setmax(maxl, qr.second - qr.first); printf("%lld\n", maxl); } return 0; }