#include <bits/stdc++.h>
using namespace std;
int main() {
  string secuencia;
  vector<long long> ingredientes(3);
  vector<long long> precios(3);
  long long r;
  cin >> secuencia;
  for (long long i = 0; i < 3; i++) {
    cin >> ingredientes[i];
  }
  for (long long i = 0; i < 3; i++) {
    cin >> precios[i];
  }
  cin >> r;
  vector<long long> numLetras = {0, 0, 0};
  for (long long i = 0; i < secuencia.size(); i++) {
    if (secuencia[i] == 'B') {
      numLetras[0]++;
    } else if (secuencia[i] == 'S') {
      numLetras[1]++;
    } else {
      numLetras[2]++;
    }
  }
  long long A = 0;
  long long B = r + ingredientes[0] + ingredientes[1] + ingredientes[2];
  long long mid;
  long long dineroAnvorgesas = 0;
  long long dineroAnvorgesas2 = 0;
  while (A < B) {
    mid = A + (B - A) / 2;
    dineroAnvorgesas = 0;
    dineroAnvorgesas2 = 0;
    for (long long i = 0; i < 3; i++) {
      if (mid * numLetras[i] - ingredientes[i] > 0) {
        dineroAnvorgesas +=
            ((mid * numLetras[i] - ingredientes[i]) * precios[i]);
      }
      if ((mid + 1) * numLetras[i] - ingredientes[i] > 0) {
        dineroAnvorgesas2 +=
            (((mid + 1) * numLetras[i] - ingredientes[i]) * precios[i]);
      }
    }
    if (dineroAnvorgesas > r) {
      B = mid;
    } else {
      if (dineroAnvorgesas2 <= r) {
        A = mid + 1;
      } else {
        B = mid;
      }
    }
  }
  dineroAnvorgesas = 0;
  for (long long i = 0; i < 3; i++) {
    if (A * numLetras[i] - ingredientes[i] > 0) {
      dineroAnvorgesas += ((A * numLetras[i] - ingredientes[i]) * precios[i]);
    }
  }
  if (dineroAnvorgesas > r) {
    cout << 0 << endl;
  } else {
    cout << A << endl;
  }
  return 0;
}
