#include <bits/stdc++.h>
using namespace std;
long long mod = 1000000007;
inline long long add(long long a, long long b) {
  return ((a % mod) + (b % mod) + mod) % mod;
}
inline long long mul(long long a, long long b) {
  return (((a % mod) * (b % mod)) % mod + mod) % mod;
}
inline long long sub(long long a, long long b) {
  return ((a % mod) - (b % mod) + mod) % mod;
}
long long gcd(long long a, long long b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
long long power(long long x, long long y, long long m) {
  if (y == 0) return 1;
  long long p = power(x, y / 2, m) % m;
  p = (p * p) % m;
  return (y % 2 == 0) ? p : (x * p) % m;
}
long long modInv(long long x) { return power(x, mod - 2, mod) % mod; }
bool possible(long long h[], long long p[], long long n, long long m,
              long long mid) {
  long long i = 0, j = 0;
  for (long long i = 0; i < n; i++) {
    long long left = 0;
    if (p[j] < h[i]) {
      left = h[i] - p[j];
    }
    if (left > mid) return false;
    while (p[j] < h[i]) j++;
    long long k;
    for (k = j; k < m; k++) {
      long long x = left * 2 + p[k] - h[i];
      long long y = (p[k] - h[i]) * 2 + left;
      long long z = min(x, y);
      if (z > mid) break;
    }
    j = k;
    if (j == m) break;
  }
  if (j == m) return true;
  return false;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(NULL);
  cout.tie(NULL);
  long long n, m;
  cin >> n >> m;
  long long a[m];
  set<long long> st;
  for (long long i = 0; i < m; i++) cin >> a[i], st.insert(a[i]);
  long long ans = 0;
  for (long long i = 0; i < m - 1; i++) {
    ans += abs(a[i + 1] - a[i]);
  }
  vector<long long> adj[n + 1];
  for (long long i = 0; i < m; i++) {
    if (i + 1 < m && a[i + 1] != a[i]) adj[a[i]].push_back(a[i + 1]);
    if (i - 1 >= 0 && a[i - 1] != a[i]) adj[a[i]].push_back(a[i - 1]);
  }
  long long sum = ans;
  for (auto x : st) {
    long long z = 0;
    for (auto y : adj[x]) {
      z = z + abs(y - x);
    }
    sort(adj[x].begin(), adj[x].end());
    long long x2 = adj[x][adj[x].size() / 2];
    long long z2 = 0;
    for (auto y : adj[x]) {
      z2 = z2 + abs(y - x2);
    }
    sum = min(sum, ans - z + z2);
  }
  cout << sum << endl;
  return 0;
}
