#include <bits/stdc++.h>
using namespace std;
int n, x;
int a[110000], b[110000];
multiset<int> se;
multiset<int>::iterator it;
int main() {
  int i;
  while (scanf("%d%d", &n, &x) != EOF) {
    for (i = 1; i <= n; i++) {
      scanf("%d", &a[i]);
    }
    sort(a, a + n);
    se.clear();
    for (i = 1; i <= n; i++) {
      scanf("%d", &b[i]);
      se.insert(b[i]);
    }
    int ans = 0;
    for (i = 1; i <= n; i++) {
      it = se.lower_bound(x - a[i]);
      if (it != se.end()) {
        ans++;
        se.erase(it);
      }
    }
    printf("1 %d\n", ans);
  }
  return 0;
}
