#include<bits/stdc++.h>

#define INF 1e9
#define llINF 1e18
#define MOD 1e9+7
#define pb push_back
#define mp make_pair 
#define F first
#define S second
#define ll long long
#define sqr(x) (x)*(x)
using namespace std;
vector<int>C(20);
vector<int>x(50000);
ll ans=0;
int n,m;
int main(){
  while(cin>>n>>m,n){
    ans=llINF;
    ll dp[n+2][530]={};
    for(int i=0;i<n+2;i++)
      for(int j=0;j<520;j++)
	dp[i][j]=llINF;
    for(int i=0;i<m;i++)
      cin>>C[i];
    for(int i=0;i<n;i++){
      cin>>x[i];
      x[i]+=260;
    }

    dp[0][128+260]=0;
    for(int i=1;i<=n;i++){
      for(int j=5;j<=515;j++){
	if(dp[i-1][j]!=llINF){
	  for(int k=0;k<m;k++){
	    int num=j+C[k];
	    if(num>=515)num=515;
	    else if(num<=5)num=5;
	    //cout<<i<<" "<<
	    dp[i][num]=min(dp[i-1][j]+sqr((num-x[i-1])),dp[i][num]);
	  }
	}
      }
    }
    for(int i=0;i<520;i++){
      ans=min(dp[n][i],ans);
    }
    cout<<ans<<endl;
  }
  return 0;
}

