#include <stdio.h>
#define MAX 2001

int value[10] = {1, 2, 5, 10, 20, 50, 100, 200, 500, 1000};
int coins[10];

char possible[MAX];
int minCoins[MAX];

int payCorrect (int v) {
  long int sum, min, k, i, j;

  possible[0] = 1;
  minCoins[0] = 0;
  for (i = 1; i <= v; i++) {
      possible[i] = 0;
  }
  for (j = 9; j >= 0; j--) {
      sum = value[j];
      for (k = 1; k <= coins[j]; k++) {
        min = sum * k;
        for (i = v; i >= min; i--) {
            if (possible[i - sum]) {
                if (! possible[i]) {
                    possible[i] = 1;
                    minCoins[i] = minCoins[i - sum] + 1;
                }
                else  //possible[i]
                  if (minCoins[i - sum] + 1 < minCoins[i]) {
                    minCoins[i] = minCoins[i - sum] + 1;
                  }
            }
        }//for i
      }//for k
  } //for j

  if (! possible[v])
    return -1;
  else
    return minCoins[v];
}

int main () {
  int i, price, result;

  for (i = 0; i < 10; i++) scanf ("%i", &coins[i]);
  scanf ("%i", &price);

  result = payCorrect (price);
  printf ("%d\n", result);
  return 0;
}
