#include <stdio.h>
#include <string.h>


int main(void){
	int n, m, c[16], x, y, p[2][256], ans, i, j, k;
	while(1){
		scanf("%d%d",&n,&m);
		if(n == 0 && m == 0) return 0;
		for(i = 0;i < m;i++)
			scanf("%d",&c[i]);
		memset(p,-1,sizeof(p));
		p[0][128] = 0;
		for(i = 0;i < n;i++){
			scanf("%d",&x);
			for(j = 0;j < 256;j++) p[(i + 1) % 2][j] = -1;
			for(j = 0;j < 256;j++){
				if(p[i % 2][j] != -1){
					for(k = 0;k < m;k++){
						y = j + c[k];
						if(y > 255) y = 255;
						else if(y < 0) y = 0;
						if(p[(i + 1) % 2][y] == -1 || p[(i + 1) % 2][y] > p[i % 2][j] + (y - x) * (y - x))
							p[(i + 1) % 2][y] = p[i % 2][j] + (y - x) * (y - x);
					}
				}
			}
		}
		ans = -1;
		for(j = 0;j < 256;j++)
			if(p[i % 2][j] != -1 && (ans == -1 || ans > p[i % 2][j])) ans = p[i % 2][j];
		printf("%d\n",ans);
	}
	return 0;
}