#include <bits/stdc++.h>
#define INF 100000000
using namespace std;

typedef long long ll;
typedef pair<int,int> P;

int n,m;
int dp[101][1<<16];
int s[16],d[101];
int dat[1<<16];

int main(void){
	while(1){
		scanf("%d%d",&n,&m);
		if(n==0 && m==0)break;
		for(int i=0;i<(1<<n);i++){
			for(int j=0;j<=m;j++){
				dp[j][i]=INF;
			}
		}
		for(int i=0;i<n;i++){
			scanf("%d",&s[i]);
		}
		for(int i=0;i<m;i++){
			scanf("%d",&d[i]);
		}
		for(int i=0;i<(1<<n);i++){
			dat[i]=0;
			for(int j=0;j<n;j++){
				if(i>>j & 1){
					dat[i]+=s[j];
				}
			}
		}
		sort(d,d+m);
		dp[0][0]=0;
		for(int i=0;i<m;i++){
			for(int j=0;j<(1<<n);j++){
				dp[i+1][j]=min(dp[i+1][j],dp[i][j]+abs(dat[j]-d[i]));
				for(int k=0;k<n;k++){
					if(!(j>>k & 1)){
						dp[i][j|(1<<k)]=min(dp[i][j|(1<<k)],dp[i][j]);
					}
				}
			}
		}
		int res=INF;
		for(int i=0;i<(1<<n);i++){
			res=min(res,dp[m][i]);
		}
		printf("%d\n",res);
	}
	return 0;
}