#include<bits/stdc++.h>
using namespace std;
#define INF 1e9

int main(){
    while(1){
        int n, m; cin >> n >> m;
        if(!n) break;
        vector<int> c(m);
        vector<int> x(n);
        for(int i = 0; i < m; i++) cin >> c[i];
        for(int i = 0; i < n; i++) cin >> x[i];
        vector<vector<int> > dp(256, vector<int> (n + 1, INF));
        for(int i = 0; i <= 255; i++) dp[i][n] = 0;
        for(int j = n - 1; j >= 0; j--){
            for(int i = 0; i <= 255; i++){
                for(int k = 0; k < m; k++){
                    int t = i + c[k];
                    if(t < 0) t = 0;
                    if(t > 255) t = 255;
                    dp[i][j] = min(dp[i][j], (t - x[j]) * (t - x[j]) + dp[t][j + 1]);
                }
            }
        }

        cout << dp[128][0] << endl;
    }
    return 0;
}
