#include <bits/stdc++.h>
using namespace std;
const int maxN = 2e5 + 11;
const long long oo = 1e17 + 11;
int N, M;
int A[maxN];
long long Lazy[maxN * 4];
long long oriSum = 0;
void Down(int k, int l, int r) {
  if (l < r) {
    int mid = (l + r) / 2;
    Lazy[k * 2] += Lazy[k];
    Lazy[k * 2 + 1] += Lazy[k];
    Lazy[k] = 0;
  }
}
void update(int k, int l, int r, int L, int R, long long val) {
  if (l > r) return;
  Down(k, l, r);
  if (L > r || l > R) return;
  if (L <= l && r <= R) {
    Lazy[k] += val;
    return;
  }
  int mid = (l + r) / 2;
  update(k * 2, l, mid, L, R, val);
  update(k * 2 + 1, mid + 1, r, L, R, val);
}
long long cal(int k, int l, int r, int v) {
  if (l > r) return 0;
  Down(k, l, r);
  if (l > v || r < v) return 0;
  if (l == r) return Lazy[k];
  int mid = (l + r) / 2;
  return cal(k * 2, l, mid, v) + cal(k * 2 + 1, mid + 1, r, v);
}
void bruteforce_update(int l, int r, long long val) {
  for (int i = l; i <= r; ++i) {
    Lazy[i] += val;
    cout << "lazy[" << i << "] += " << val << endl;
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie();
  cout.tie();
  cin >> N >> M;
  for (int i = 1; i <= M; ++i) cin >> A[i];
  for (int i = 1; i < M; ++i) {
    oriSum += abs(A[i] - A[i + 1]);
  }
  for (int i = 1; i < M; ++i) {
    int x = A[i], y = A[i + 1];
    if (x > y) swap(x, y);
    if (x == y) continue;
    update(1, 1, N, x + 1, y - 1, -1);
    update(1, 1, N, x, x, -(y - x) + y - 1);
    update(1, 1, N, y, y, -(y - x) + x);
  }
  for (int i = 1; i <= N; ++i) {
    cout << oriSum + cal(1, 1, N, i) << " ";
  }
  return 0;
}
