#include <bits/stdc++.h>
using namespace std;
template <typename T>
class FenwickTree {
  int N;
  vector<T> ft;

 public:
  FenwickTree(int N) : N(N), ft(N) {}
  void update(int i, T val) {
    for (; i < N; i = (i | (i + 1))) {
      ft[i] += val;
    }
  }
  T query(int i) {
    T sum{};
    for (; i >= 0; i = (i & (i + 1)) - 1) {
      sum += ft[i];
    }
    return sum;
  }
  T query(int i, int j) { return query(j) - (i == 0 ? 0 : query(i - 1)); }
  void update1(int i, int j) {
    if (i <= j) {
      update(i, 1);
      if (j + 1 < N) update(j + 1, -1);
    }
  }
};
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  int n, m;
  cin >> n >> m;
  vector<long long> a(m);
  for (long long i = 0; i < m; i++) cin >> a[i];
  FenwickTree<long long> ft(n + 1);
  vector<long long> cnt_greater(n + 1), sub(n + 1), add(n + 1);
  long long ans = 0;
  for (long long i = 0; i < m - 1; i++) {
    long long x = a[i], y = a[i + 1];
    if (x == y) continue;
    if (x > y) swap(x, y);
    ft.update1(x + 1, y - 1);
    ++cnt_greater[x];
    ans += y - x;
    sub[y] += y - x;
    add[y] += y - (y - x);
  }
  cout << ans << " ";
  for (long long i = 2; i <= n; i++) {
    long long cur =
        ans - ft.query(i) + cnt_greater[i] * (i - 1) - sub[i] + add[i];
    cout << cur << " ";
  }
  cout << endl;
  return 0;
}
