#include <bits/stdc++.h>
using namespace std;
const long long N = 1e19 + 0;
string g, s, h, w;
long long n, cnt, ans, sum;
void vkoshp() {
  cin >> n >> g >> s;
  h = g;
  w = s;
  sort(h.begin(), h.end());
  sort(w.begin(), w.end());
  while (h.size()) {
    n = -1;
    for (long long i = 0; i < w.size(); i++) {
      if (w[i] == h[0]) {
        n = i;
        break;
      }
    }
    if (n != -1) {
      w.erase(w.begin() + n);
      h.erase(h.begin());
      continue;
    }
    for (long long i = 0; i < w.size(); i++) {
      if (w[i] > h[0]) {
        n = i;
        w.erase(w.begin() + i);
        h.erase(h.begin());
        break;
      }
    }
    if (n != -1) continue;
    h.erase(h.begin());
    w.erase(w.begin());
    cnt++;
  }
  cout << cnt << endl;
  sort(s.begin(), s.end());
  sort(g.begin(), g.end());
  cnt = 0;
  while (g.size()) {
    n = -1;
    for (long long i = 0; i < s.size(); i++) {
      if (s[i] > g[0]) {
        s.erase(s.begin() + i);
        g.erase(g.begin());
        cnt++;
        n = 1;
        break;
      }
    }
    if (n == -1) {
      g.erase(g.begin());
      s.erase(s.begin());
    }
  }
  cout << cnt << endl;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(NULL);
  cout.tie(NULL);
  long long Qu_l_uQ = 1;
  while (Qu_l_uQ--) vkoshp();
}
