#include <bits/stdc++.h>
using namespace std;
pair<long long, int> dp[16][20001];
int c[16];
int x[20000];
int main() {
  int n, m;
  while (cin >> n >> m && (n || m)) {
    for (int i = 0; i < m; i++) cin >> c[i];
    for (int i = 0; i < n; i++) cin >> x[i];
    for (int i = 0; i < m; i++)
      for (int j = 0; j <= n; j++) dp[i][j] = make_pair(LONG_MAX, 255);
    for (int i = 0; i < m; i++) dp[i][0] = make_pair(0, 128);
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < m; j++) {
        for (int k = 0; k < m; k++) {
          long long u = dp[j][i].second + c[k];
          if (u < 0) u = 0;
          if (u > 255) u = 255;
          dp[k][i + 1] =
              min(dp[k][i + 1],
                  make_pair(dp[j][i].first + (x[i] - u) * (x[i] - u), (int)u));
        }
      }
    }
    long long res = LONG_MAX;
    for (int i = 0; i < m; i++) res = min(dp[i][n].first, res);
    cout << res << endl;
  }
  return 0;
}
