#include <bits/stdc++.h>
using namespace std;
template <class T>
void checkMin(T& r, T val) {
  if (r > val) r = val;
}
vector<int> v;
int d[10];
int d2[10];
bool vis[1000010];
char buf[210];
char sn[10];
int n;
int ans;
void check() {
  int res = 0;
  for (int i = 0; i < 10; ++i) {
    if (v[i] > d[i]) return;
    int t = v[i];
    while (t--) {
      res = res * 11 + (1 + i);
    }
  }
  if (vis[res]) return;
  vis[res] = true;
  ans++;
}
void dfs(int dep) {
  if (dep == n) {
    check();
    return;
  }
  if (sn[dep] == '2' || sn[dep] == '5') {
    v[2]++;
    dfs(dep + 1);
    v[2]--;
    v[5]++;
    dfs(dep + 1);
    v[5]--;
  } else if (sn[dep] == '6' || sn[dep] == '9') {
    v[6]++;
    dfs(dep + 1);
    v[6]--;
    v[9]++;
    dfs(dep + 1);
    v[9]--;
  } else {
    v[sn[dep] - '0']++;
    dfs(dep + 1);
    v[sn[dep] - '0']--;
  }
}
int main() {
  v = vector<int>(10, 0);
  scanf("%s%s", sn, buf);
  n = strlen(sn);
  int len = strlen(buf);
  for (int i = 0; i < len; ++i) d[buf[i] - '0']++;
  for (int i = 0; i < n; ++i) d2[sn[i] - '0']++;
  int ans = 1 << 30;
  if (d2[2] + d2[5]) checkMin(ans, (d[2] + d[5]) / (d2[2] + d2[5]));
  if (d2[6] + d2[9]) checkMin(ans, (d[6] + d[9]) / (d2[6] + d2[9]));
  if (d2[0]) checkMin(ans, d[0] / d2[0]);
  if (d2[1]) checkMin(ans, d[1] / d2[1]);
  if (d2[3]) checkMin(ans, d[3] / d2[3]);
  if (d2[4]) checkMin(ans, d[4] / d2[4]);
  if (d2[7]) checkMin(ans, d[7] / d2[7]);
  if (d2[8]) checkMin(ans, d[8] / d2[8]);
  printf("%d\n", ans);
  return 0;
}
