#include <bits/stdc++.h>
using namespace std;
const int INF = 1 << 28;
int res;
vector<int> c;
vector<int> x;
void dfs(int y, int n, int sum) {
  if (res < sum) return;
  if (n == x.size()) {
    res = min(res, sum);
    return;
  }
  for (auto i : c) {
    int yn = y + i;
    if (yn > 255) yn = 255;
    if (yn < 0) yn = 0;
    dfs(yn, n + 1, sum + ((yn - x[n]) * (yn - x[n])));
  }
}
int main() {
  int n, m;
  while (cin >> n >> m, n || m) {
    res = INF;
    c.resize(m);
    x.resize(n);
    for (auto &i : c) cin >> i;
    for (auto &i : x) cin >> i;
    dfs(128, 0, 0);
    cout << res << endl;
  }
  return 0;
}
