#include<iostream>

using namespace std;

int p,n[6],u[6];

int dfs(int r,int c){
  int cc[]={1,5,10,50,100,500};
  if(c>=0){
    int ans=1<<30;
    for(int i=0;i<2;i++){
      u[c]=min(n[c],r/cc[c]+i);
      ans=min(ans,dfs(max(0,r-u[c]*cc[c]),c-1)+u[c]);
    }
    return ans;
  }else{
    int ch=-p;
    for(int i=0;i<6;i++){
      ch+=cc[i]*u[i];
    }
    int r=0;
    for(int i=5;i>=0;i--){
      r+=ch/cc[i];
      ch%=cc[i];
    }
    return r;
  }
}

int main(){
  while(cin>>p>>n[0]>>n[1]>>n[2]>>n[3]>>n[4]>>n[5],p){
    cout<<dfs(p,5)<<endl;
  }
  return 0;
}