#include <bits/stdc++.h>
using namespace std;
struct traffic_lights: set<int> {
void closest(int p, int &l, int& r) {
auto ip = upper_bound(p);
r = *ip--, l = *ip; } };
struct segments: map<int,int> {
void remove(int x) {
const auto it = find(x);
auto& count = it->second;
if (--count == 0)
erase(it); }
int max_length() const { return crbegin()->first; } };
int main() {
int x, n; traffic_lights s; segments q;
cin.tie(nullptr)->sync_with_stdio(false),
cin >> x >> n, s.insert(0), s.insert(x), q[x] = 1;
for (int p, l, r; n--; s.insert(p), cout << q.max_length() << ' ')
cin >> p, s.closest(p,l,r), q.remove(r-l), ++q[p-l], ++q[r-p]; }
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgdHJhZmZpY19saWdodHM6IHNldDxpbnQ+IHsKCXZvaWQgY2xvc2VzdChpbnQgcCwgaW50ICZsLCBpbnQmIHIpIHsKCQlhdXRvIGlwID0gdXBwZXJfYm91bmQocCk7CgkJciA9ICppcC0tLCBsID0gKmlwOyB9IH07IAoJCQkKc3RydWN0IHNlZ21lbnRzOiBtYXA8aW50LGludD4gewoJdm9pZCByZW1vdmUoaW50IHgpIHsKCQljb25zdCBhdXRvIGl0ID0gZmluZCh4KTsKCQlhdXRvJiBjb3VudCA9IGl0LT5zZWNvbmQ7CgkJaWYgKC0tY291bnQgPT0gMCkKCQkJZXJhc2UoaXQpOyB9IAoJaW50IG1heF9sZW5ndGgoKSBjb25zdCB7IHJldHVybiBjcmJlZ2luKCktPmZpcnN0OyB9IH07CgkKaW50IG1haW4oKSB7IAoJaW50IHgsIG47IHRyYWZmaWNfbGlnaHRzIHM7IHNlZ21lbnRzIHE7IAoJY2luLnRpZShudWxscHRyKS0+c3luY193aXRoX3N0ZGlvKGZhbHNlKSwgCgljaW4gPj4geCA+PiBuLCBzLmluc2VydCgwKSwgcy5pbnNlcnQoeCksIHFbeF0gPSAxOwoJZm9yIChpbnQgcCwgbCwgcjsgbi0tOyBzLmluc2VydChwKSwgY291dCA8PCBxLm1heF9sZW5ndGgoKSA8PCAnICcpCgkJY2luID4+IHAsIHMuY2xvc2VzdChwLGwsciksIHEucmVtb3ZlKHItbCksICsrcVtwLWxdLCArK3Fbci1wXTsgfQoJCQ==