#include<bits/stdc++.h>
using namespace std;
int n,m,s[15],d[100],dp[101][1<<15];

void minimize(int &a,int b){
  a=min(a,b);
}

int main(){


  int n,m;
  while(cin>>n>>m,n){
    for(int i=0;i<n;i++)cin>>s[i];
    for(int i=0;i<m;i++)cin>>d[i];
    sort(d,d+m);

    int sum[1<<15]={};
    for(int i=0;i<(1<<n);i++)
      for(int j=0;j<n;j++)
	if((1<<j)&i)sum[i]+=s[j];

    for(int j=0;j<=m;j++)
      for(int i=0;i<(1<<n);i++)dp[j][i]=1e9;
    dp[0][0]=0;

    for(int i=0;i<m;i++)
      for(int j=0;j<(1<<n);j++){

	for(int k=0;k<n;k++){
	  if(((1<<k)&j)!=0)continue;
	  
	  minimize( dp[i+1][j+(1<<k)] , dp[i][j]+abs(sum[j+(1<<k)]-d[i]));
	  minimize( dp[i][j+(1<<k)] , dp[i][j]);
	}

	minimize(dp[i+1][j],dp[i][j]+abs(sum[j]-d[i]));
      }



    int mn=1e9;
    for(int i=0;i<(1<<n);i++)mn=min(mn,dp[m][i]);
    cout<<mn<<endl;
  }
  return 0;
}