#include<iostream>
#include<algorithm>
using namespace std;
int dp[256][20001];
int main()
{
	int n,m;
	while(cin>>n>>m,n)
	{
		int c[16];
		for(int i=0;i<m;i++)cin>>c[i];
		for(int i=0;i<256;i++)for(int j=0;j<=n;j++)dp[i][j]=1<<28;
		dp[128][0]=0;
		for(int i=1;i<=n;i++)
		{
			int a;cin>>a;
			for(int j=0;j<256;j++)
			{
				for(int k=0;k<m;k++)
				{
					int u=j+c[k];
					if(u<0)u=0;
					if(u>=256)u=255;
					dp[u][i]=min(dp[u][i],(a-u)*(a-u)+dp[j][i-1]);
				}
			}
		}
		int mindp=1<<28;
		for(int i=0;i<256;i++)mindp=min(mindp,dp[i][n]);
		cout<<mindp<<endl;
	}
}