#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
long long gcd(long long x, long long y) {
  while (y) x %= y, swap(x, y);
  return x;
}
pair<long long, long long> operator+(pair<long long, long long> a,
                                     pair<long long, long long> b) {
  return pair<long long, long long>(a.first + b.first, a.second + b.second);
}
pair<long long, long long> operator-(pair<long long, long long> a,
                                     pair<long long, long long> b) {
  return pair<long long, long long>(a.first - b.first, a.second - b.second);
}
long long operator*(pair<long long, long long> a,
                    pair<long long, long long> b) {
  return a.first * b.second - a.second * b.first;
}
template <class T>
int sign(T x) {
  return x < 0 ? -1 : x > 0 ? 1 : 0;
}
int ccw(pair<long long, long long> a, pair<long long, long long> b,
        pair<long long, long long> c) {
  return sign((b - a) * (c - b));
}
template <class T>
void setmin(T &x, T y) {
  if (x > y) x = y;
}
template <class T>
void setmax(T &x, T y) {
  if (x < y) x = y;
}
template <class T>
void addval(T &x, T y) {
  x += y;
  x %= mod;
}
size_t getCurrentTime() {
  return chrono::steady_clock::now().time_since_epoch().count();
}
struct __RandomLong__ {
  mt19937_64 rnd;
  __RandomLong__() : rnd(getCurrentTime()) {}
  long long operator()(long long Min, long long Max) {
    return uniform_int_distribution<long long>(Min, Max)(rnd);
  }
  long long operator()() { return (*this)(LONG_LONG_MIN, LONG_LONG_MAX); }
} randomLong;
struct my_hash {
  static uint64_t splitmix(uint64_t x) {
    x += 0x9e3779b97f4a7c15ull;
    x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9ull;
    x = (x ^ (x >> 27)) * 0x94d049bb133111ebull;
    return x ^ (x >> 31);
  }
  size_t operator()(long long x) const {
    static long long T = getCurrentTime();
    return splitmix(x + T);
  }
};
int n, m;
int A[20005], B[20005];
vector<int> D[5005];
int it[5005];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cout.setf(ios::fixed, ios::floatfield);
  cout.precision(20);
  cin >> n >> m;
  for (int i = 1; i <= m; i++) {
    cin >> A[i] >> B[i];
    D[A[i]].emplace_back((B[i] - A[i] + n) % n);
  }
  int mx = 0;
  for (int i = 1; i <= n; i++) {
    setmax(mx, ((int)(D[i]).size()));
    sort((D[i]).begin(), (D[i]).end());
  }
  for (int i = 1; i <= n; i++) {
    int ans = 0;
    for (int j = 1; j <= n; j++) {
      if (((int)(D[j]).size()) == 0) continue;
      if (((int)(D[j]).size()) == mx - 1)
        setmax(ans, (j - i + n) % n + D[j][0] - n);
      if (((int)(D[j]).size()) == mx) setmax(ans, (j - i + n) % n + D[j][0]);
    }
    printf("%d ", (mx - 1) * n + ans);
  }
}
