#include <bits/stdc++.h>
using namespace std;
int main() {
  char a[1000000], b[1000000];
  scanf("%s %s", &a, &b);
  int i, j, n, m;
  int h11[30], h12[30], h21[30], h22[30];
  n = strlen(a);
  m = strlen(b);
  for (i = 0; i < 30; i++) {
    h11[i] = 0;
    h12[i] = 0;
    h21[i] = 0;
    h22[i] = 0;
  }
  int count1 = 0, count2 = 0;
  for (i = 0; i < m; i++) {
    if (b[i] >= 'A' && b[i] <= 'Z') {
      h11[b[i] - 'A']++;
    } else {
      h12[b[i] - 'a']++;
    }
  }
  for (i = 0; i < n; i++) {
    if (a[i] >= 'A' && a[i] <= 'Z') {
      h21[a[i] - 'A']++;
    } else {
      h22[a[i] - 'a']++;
    }
  }
  for (i = 0; i < 26; i++) {
    if (h11[i] > h21[i]) {
      count1 += h21[i];
      h11[i] = h11[i] - h21[i];
      h21[i] = 0;
    } else {
      count1 += h11[i];
      h21[i] = h21[i] - h11[i];
      h11[i] = 0;
    }
    if (h12[i] > h22[i]) {
      count1 += h22[i];
      h12[i] = h12[i] - h22[i];
      h22[i] = 0;
    } else {
      count1 += h12[i];
      h22[i] = h22[i] - h12[i];
      h12[i] = 0;
    }
  }
  for (i = 0; i < 26; i++) {
    if (h21[i] != 0) {
      if (h12[i] > h21[i]) {
        count2 += h21[i];
      } else {
        count2 += h12[i];
      }
    }
    if (h22[i] != 0) {
      if (h11[i] > h22[i]) {
        count2 += h22[i];
      } else {
        count2 += h11[i];
      }
    }
  }
  printf("%d %d", count1, count2);
  return 0;
}
