#include <iostream>
#include <fstream>
#include <algorithm>
#include <cassert>
#include <cctype>
#include <complex>
#include <cstdio>
#include <map>
#include <math.h>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>
using namespace std;

#define INF 2e9
#define rep(i,n) for(int i=0;i<n;i++)

int N,M,c[16],dp[256];

int main(){
	while(cin>>N>>M&&N){
		fill(dp,dp+256,INF);
		dp[128]=0;
		rep(i,M)cin>>c[i];
		rep(i,N){
			int m,dp2[256];
			fill(dp2,dp2+256,INF);
			cin>>m;
			rep(j,256)rep(k,M){
				int n=j+c[k];
				if(n<0)n=0;
				if(n>255)n=255;
				dp2[n]=min(dp2[n],dp[j]+(m-n)*(m-n));
			}
			rep(j,256)dp[j]=dp2[j];
		}
		int ans=INF;
		rep(i,256)ans=min(ans,dp[i]);
		cout<<ans<<endl;
	}
}