#include<bits/stdc++.h>
using namespace std;
int main(){
  int n,m,c[16],x[20001];
  int dp1[256],dp2[256];

  while(cin>>n>>m,n|m){

  for(int i=0;i<m;i++) cin>>c[i];
  for(int i=1;i<n+1;i++) cin>>x[i];
  for(int j=0;j<256;j++) dp1[j]=1145141919;
  for(int j=0;j<256;j++) dp2[j]=1145141919;
  dp1[128]=0;
  
  for(int i=0;i<n;i++){
    for(int j=0;j<256;j++){
      if(dp1[j]!=1145141919){
        for(int k=0;k<m;k++){
          int tmp=j+c[k];
          if(tmp<0) tmp=0;
          if(tmp>255) tmp=255;
          dp2[tmp]=min(dp2[tmp],dp1[j]+(int)pow(x[i+1]-tmp,2));
        }
      }
    }
    for(int j=0;j<256;j++){
      dp1[j]=dp2[j];
      dp2[j]=1145141919;
    }
  }
  for(int i=1;i<256;i++) dp1[i]=min(dp1[i],dp1[i-1]);
  cout<<dp1[255]<<endl;
  }
  
  return 0;
}