//(・ω・) #include #include // cout, endl, cin #include // string, to_string, atoi #include // vector #include // min, max, swap, sort, reverse, lower_bound, upper_bound #include // pair, make_pair #include // tuple, make_tuple #include // int64_t, int*_t #include // printf #include // map #include // queue, priority_queue #include // set #include // stack #include // deque #include // unordered_map #include // unordered_set #include // bitset #include // isupper, islower, isdigit, toupper, tolower #include #include //setprecision #include #include //istringstream #include #include #include //std::advance() using namespace std; using ll = long long; using ull = unsigned long long; using ld = long double; #define SZ(x) ((int)(x).size()); #define vec vector template using v = vector; template using vv = v< v >; template using vvv = v< vv >; #define el '\n' #define vl v #define vvl vv #define pl pair #define repab(i, a, b) for(ll i = a; a < (ll)(b); ++i) #define rep(i, n) for(ll i = 0; i < (ll)(n); ++i) #define rep1(i, n) for(ll i = 1; i <= (ll)(n); ++i) #define rrep(i, n) for(ll i = ((ll)(n) - 1); i >= 0; --i) #define rrep1(i, n) for(ll i = ((ll)(n)); i > 0; --i) #define YN(x) cout << ((x) ? "YES\n" : "NO\n"); #define Yn(x) cout << ((x) ? "Yes\n" : "No\n"); #define yn(x) cout << ((x) ? "yes\n" : "no\n"); #define COUT(x) cout << (x) << el; const double pi = 3.141592653589793238; const int inf = 1073741823; const ll infl = 1LL << 60; ll gcd(ll a, ll b){return b ? gcd(b, a % b) : a;} int dx[4] = {1, 0, -1, 0}; int dy[4] = {0, 1, 0, -1}; int main(){ int n,x; cin >> n >> x; vector a(n); vector b(n); for(int i = 0; i < n; ++i){ cin >> a[i] >> b[i]; } for(int i = 0; i < x; ++i){ int ans = 0; for(int j = 0; j < n; ++j) ans = max(ans, max(0, b[j] - abs(a[j] - (i + 1)))); cout << ans << ' '; } cout << endl; return 0; }